본문 바로가기

Domain/운영체제

(10)
[운영체제] 9. Paging (and Beyond Physical Memory) Paging 주소 공간을 고정된 크기의 page 단위로 물리 메모리의 frame에 불연속적으로 매핑하는 방식이다. Segmentation의 경우 다중 프로세스간 공유와 보호라는 장점이 있지만, 외부 단편화가 발생한다. 하지만, paging은 외부단편화가 없고 하드웨어 지원이 간단하다. 그리고 이후에 학습할 demand paging을 하기에도 쉽다. Paging의 주소 변환은 page table을 이용한다. Page table은 각 page가 물리 메모리의 어느 frame에 위치하는지 나타낸다. 또한, Page table은 각 프로세스 당 하나씩 존재한다. Paging에서의 주소 변환 예를들어, 가상메모리는 총 64B의 크기이며 page의 크기는 16B이다. 그리고 물리 메모리는 총 128B이며 frame..
[운영체제] 8. Memory Management 메모리의 발전 초기 시스템에서 메모리는 물리 메모리를 직접 사용하는 형태였다. 시스템에는 하나의 프로그램만 동작중이고, overlay를 통해 물리 메모리의 사이즈보다 큰 프로그램은 나누어서 필요할 때 물리 메모리 공간에 올려 수행하게 된다. 이후 컴퓨터 하드웨어의 발전으로 여러 프로세스를 수행할 수 있게 되었고 이때 time sharing이 도입된다. 이후 주소공간을 통해 프로세스는 자신반의 크고 독립적인 가상적인 메모리 공간을 가지게 된다. 메모리는 정적으로 변하지 않는 코드, 데이터 영역과 프로그래머의 명시적 할당으로 인해 동적인 힙, 그리고 컴파일러가 암시적으로 할당하는 동적 영역인 스택으로 구별된다. 메모리 가상화 위 처럼 프로세스 별로 주소공간(가상 메모리)를 갖게 되었다. 이때 실제 프로그램 ..
[운영체제] 7. Advanced File System UFS(Unix File System) 유닉스에서 사용하는 가장 기본적인 파일시스템 형식으로 inode와 data를 번갈아가며 접근하게 되어 seek time이 크다. 또한 일관성 문제가 존재한다. 장점으로는 간단하고 사용하기 쉽다는 장점이 있다. 성능이 낮은 이유는 inode와 data가 다른 트랙에 위치하기 때문이다. 그리고 점차 시간이 지나면서 단편화가 발생하여 더욱 긴 seek time이 유발된다. FFS(Fast File System) 이름에서 유추할 수 있듯이 빠른 파일 시스템이다. Disk-awareness를 통해 inode와 data를 가능한 가까이 배치하여 seek time을 줄이는 방식이다. (연관된 것을 같이 놓게 된다. Data-inode, file-directory) Disk-aw..
[운영체제] 6. File System Basic 정규 장치와 프로토콜 장치(Device) 인터페이스: Command, status, data 레지스터로 구성된다. 내부: 로직을 담당하는 controller, special chips, SW(firmware)와 메모리를 담당하는 I/O buffer로 구성된다. 프로토콜(Protocol): 장치간의 상호작용의 순서를 의미한다 Idle check → data → command → finish check 위의 순서를 제공하는 메커니즘으로 Programmed I/O, interrupt, DMA 등이 존재한다. Interrupt를 이용한 CPU의 부하 감소 Interrupt 장치가 Idle 상태가 될 경우 CPU에게 알리게 된다. 따라서 해당 쓰레드는 sleep 상태로 overlapping이 가능하다. → CPU..
[운영체제] 5. Concurrency: Semaphores and Deadlock2 Common Concurrency Problem 프로세스를 병렬적으로 처리하면 처리율이 증가한다는 장점이 있찌만 여러가지 병행성 문제가 발생할 수 있어 이를 잘 관리하여야 한다. Non-deadlock bug ① Atomicity-violation bug: lock을 이용하여 원자성을 보장하는 형태로 해결한다. ② Order-violation bug: condition variable을 이용하여 해결한다. (lock의 보조 필요) Deadlock bug 여러 쓰레드들이 절대 발생하지 않을 상황을 기다리며 무한히 대기하는 상태이다. 데드락의 필요 조건 상호 배제 점유 대기 자원 비선점 환형 대기 데드락의 해결책 1. 데드락 예방: 데드락의 필요 조건 4가지 중 하나를 해결하여 데드락을 미연에 방지한다. ①..
[운영체제] 5. Concurrency: Semaphores and Deadlock1 Condition Variables(상태 변수) 상호배제와 동기화(순서 관계)를 제공할 수 있는 API pthread_cond_wait: run 상태의 쓰레드를 sleep 상태로 바꾸어 sleep 큐에 넣는 API pthread_cond_signal: sleep 큐에 존재하는 쓰레드를 깨워 스케쥴링 될 수 있는 ready 상태로 바꾸는 API 순서관계를 제공하는 방법 1. Busy waiting(spin): 성능이 좋지 않으며 자식이 많을 경우 문제가 생길 수 있다. 2. Codition variable: 성능도 좋으며 정확성을 보장한다. 생산자/소비자 문제 (Producer/Consumer Problem; Bounded Buffer Problem) 유한한 개수의 생산품을 보관하는 버퍼에 여러명의 생산자..
[운영체제] 4. Concurrency: Thread and Lock Concurrency 공유 자원의 존재로 경쟁 상태가 유발됨에 따라 기대와 다른 결과를 도출하게 된다. 이를 잘 약속된 동기화 방법으로 강제하는 것을 병행성이라 한다. Thread & Process Process는 스케쥴링의 객체로 자원을 독점적으로 사용하는 모델이다. -장점과 단점 장점: 독립적인 모델로 결함 발생 시 상대적으로 안전하다. 단점: 자원 공유가 불가능하다. 생성이 느리다(많은 영역을 복제). Thread 또한 스케쥴링의 객체로 프로세스와 다르게 많은 자원을 공유한다.(code, data, heap and files) '-장점과 단점 장점: 병렬성, 자원공유, 빠른 생성, 대기와 처리의 오버랩 단점: 결함 발생 시 프로세스 모델에 비해 취약하다. Concurrency Example 아래의 ..
[운영체제] 3. Scheduling Scheduling 한 시점에서 여러 프로세스가 제한된 물리적 자원인 CPU를 접근할 경우 프로세스 별로 접근에 대한 순서를 정해주어야 된다. Scheduling Metrics Turnaround time = 수행완료시간 - 도착시간 Response time = 첫 서비스 시간 - 도착시간 Fairness: 프로세스간 걸리는 시간이 비슷한 정도 Throughput: 단위 시간 동안 얼마나 많은 작업을 처리했는지 Deadline: Turnaround time < deadline FIFO(First In First Out) 도착 시간이 빠른 프로세스를 먼저 수행하는 스케쥴링 기법. 장점으로는 간단하고 구현이 쉽지만, 단점으로는 convey effect에 의해 긴 대기 시간이 유발될 수 있다. SJF(Shot..