일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AWS
- 도커 컨테이너
- 도커 명령어
- os
- Python
- kubernetes
- docker
- 도커 이미지
- 클라우드
- NGINX
- 네트워크
- linux
- ios
- devops
- 부스트코스
- Swift
- 데브옵스
- C++
- boj
- 운영체제
- 리눅스
- centOS7
- swift 클로저
- 도커
- k8s
- 컨테이너
- 인프라
- centOS
- 쿠버네티스
- 프로세스
- Today
- Total
목록운영체제 (10)
귀염둥이의 메모
Valid / Invalid Bit in a Page Table page table 엔트리에는 사용되지 않는 부분도 만들어져야 한다 6, 7번의 페이지는 없지만 주소체계에서는 6, 7번 테이블 페이지는 만들어지고 invalid라고 표시 Memory Protection : Page table의 각 entry 마다 아래의 bit을 둔다 Protection bit page에 대한 접근 권한(read/write/read-only) Valid-invalid bit valid는 해당 주소의 frame에 그 프로세스를 구성하는 유효한 내용이 있음을 뜻한다 (접근 허용) invalid는 해당 주소의 frame에 유효한 내용이 없음을 뜻함 (접근 불허) Inverted Page Table Page table이 매우 큰 ..
RAID (Redundant Array of Independent Disks) 저장 장치 여러 개를 묶어서 고용량, 고성능인 저장 장치 한 개와 같은 효과를 얻을 수 있다 RAID의 사용 목적은 가용성과 성능 향상이다 하드웨어 RAID가 소프트웨어 RAID 보다 빠르다 RAID 0 (= stripe) ⭐️ 데이터 중복성을 제공하지 않는다 ➡️ 내구성 제공 X 스트라이프 단위 : Chunk 디스크 N개 read/write 속도가 N배 빠르다 장점 : 속도가 매우 빠르다 단점 : 디스크 한 개에 문제 발생하면 전체가 오류 RAID 1 (= mirror) ⭐️ 데이터 중복을 제공하여 내구성(안정성)이 좋다 속도가 stripe 보다 느리다 공간의 효율성이 떨어진다 (중복 데이터) 디스크 N개 read : N배 ..
물리 메모리인 RAN의 용량 확장에는 많은 제약이 있다. 같은 용량의 디스크에 비해 가격이 매우 비싸고, 시스템 메인보드에 연결할 수 있는 슬롯에도 제한이 있어 무한정 확장이 불가능하다. 물리 메모리가 부족한 경우를 해결하기 위해 운영체제가 사용하는 방법은 가상 메모리(Virtual Memory)이다. 가상 메모리는 RAM + 스왑(SWAP)이다. 스왑은 디스크 장치에 생성되는 영역을 의미한다 윈도우에서는 페이징(Paging) 파일 관리를 하고, 리눅스에서는 스왑 파티션 영역이 있다 운영체제의 가상 메모리를 관리하는 가상메모리 관리자는 물리 메모리와 스왑 영역을 합산하여 가상 메모리로 사용한다 스왑 영역을 물리 메모리처럼 사용할 수 있다고 해서, CPU가 스왑 영역에 있는 데이터를 직접 접근하여 읽을 수..
Logical address (=Virtual address) 각 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 메모리에 올라갈 때 시작 위치는 바뀌지만 그 안에 있는 코드 상의 address는 그대로이다 Physical address : 메모리에 실제 올라가는 위치 Symbolic Address : 프로그래머 입장에서 보는 Symbol로 표현한 주소 (변수) 주소 바인딩(Address Binding) Complie Time Binding 물리적 메모리 주소(Physical address)가 컴파일 시 알려짐 컴파일러는 절대 코드(absolute code) 생성 이미 결정된 Logical address가 Physical add..
데이터의 접근 Race Condition 두 개 이상의 프로세스가 데이터에 동시에 접근하려 할 때 race conditon이 발생한다 S-Box(memory address space)를 공유하는 E-box(CPU space)가 여러개 있는 경우 race condition의 가능성이 있다 OS에서 race condition은 언제 발생하는가? kernel 수행 중 인터럽트 발생 시 Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data 1. interrupt handler vs kernel count++ 과정 중간에 interrupt handler로 coun..
CPU and I/O Bursts in Program Execution 프로그램 실행? CPU를 연속적으로 쓰는 단계와 I/O를 실행하는 단계가 반복되며 실행되는 것 *여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다!! interactive job에게 적절한 response 제공 요망 CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스의 특성 분류 I/O - bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts CPU - bound process 계산 위주의 job few very long CPU bursts CPU Scheduler & Dispatcher 스케줄러와 디스..
프로세스 생성 (Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(children process) 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Excution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델 주소 공간(Address space) 자식은 부모의 공간을 복사함 (binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 UNIX의 예시 fork 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사 (OS ..
Process is a program in execution 프로세의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter 각종 Register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료구조 PCB(Process Control Block) Kernel stack Time sharing, Multi Tasking을 위해 문맥을 파악한다. (현재 시점의 정확한 상태를 파악하기 위해 문맥을 살핀다!) 프로세스의 상태(Process State) 프로세스는 상태(state)가 변경되며 수행된다. Running : CPU를 잡고 instruction을 수행중인 상태 Ready : CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고..
컴퓨터 시스템구조 Mode bit 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 Mode bit을 통해 하드웨어적으로 두 가지 모드의 Operation 지원 1 (사용자 모드) : 사용자 프로그램 수행 0 (커널 모드) : OS 코드 실행 보안을 해칠 수 있는 중요한 명령어는 커널 모드에서만 수행 가능한 특권명령으로 규정 Interrupt나 exception 발생시 하드웨어가 mode bit을 0으로 바꿈 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 셋팅 타이머(Timer) 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴 타이머는 매 클럭 틱 때마다 1씩 감소 타이머 값이 0이 되면 타이머 인터럽트 발..
운영체제(Operating System) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 좁은 의미 광의의 운영체제 : 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 - 넓은 의미 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치(리소스들) 등의 효율적 관리 사용자 및 OS 자신의 보호 프로세스, 파일, 메시지 등을 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행함 운영체제의 분류 동시 작업 가능 여부 단일 작업(Single tasking) : 한 번에 하나의..