본문 바로가기

Operating System14

Memory Management Disk에 있는 프로그램을 main memory에 올리기 위해 1. 언제 올릴건지 2. 어디에 올릴건지 3. 어떤 프로세스를 올릴건지 를 결정해야한다. 주 요구사항은 Allocation, Relocation, Protection, Sharing 이러한 내용들이 효율적이고 transparent하게 관리되어야 한다. 먼저 address에 대해 살펴보자 Address Types Symbolic address - 변수 이름같은 상징적인 주소를 의미한다. - 소스코드에 사용된다. Logical or relative address (or virtual address) - 프로세스의 위치를 상대적으로 나타내는 주소이다. - 시작위치로부터 떨어진 거리를 의미한다. Physical or absolute address -.. 2021. 6. 12.
Deadlock Deadlock이란? 두 개 이상의 프로세스가 더 이상 진행할 수 없는 상황 a,b,c,d는 resource, 자동차는 process라고 하자. 모든 자동차가 서로 지나가려고 하다가 꽉~막혀버렸다. 이런 상황을 deadlock이라고 표현할 수 있다. resource는 한 번에 하나의 프로세스에 의해 사용될 수 있다. 하드웨어와 소프트웨어 모두 될 수 있다. 즉, OS가 개입할 여지가 있다는 말이다! 잘 활용하면.. deadlock막을 수 있겠는데..? 일반적으로 데드락은 Non preemption resources를 가정한다. Resource Allocation Graphs 데드락을 미연에 방지할 수 있다! 먼저 vertices부터 살펴보자 동그라미로 표시되는 Px는 프로세스를 의미하고, 네모로 표시되는.. 2021. 6. 11.
Synchronization Synchronization 여러 threads가 shared resource에 동시에 접근하면 incorrect result를 얻을 수 있다.(race condition) 이러한 문제를 미연에 방지하기 위한 방법을 synchronization이라고 한다. Race condition thread가 자원 공유를 할 때의 결과가 non-deterministic(non-reproducable)인 문제l 이 결과는 timing에 의존한다 Multi-threading : CPU 스케줄러에 의해 'interleaved' 될 수 있다. Multi-processor : 다중처리기에서 실행 timing은 CPU가 얼마나 바쁜지에 따라 다르다. 하나의 명령코드는 여러개의 instruction으로 나누어질 수 있다. 하나의.. 2021. 5. 19.
Thread Concurrency vs Parallelism Concurrency : 동시성,병행성 동시에 진행된다. 즉 (a)를 보면 단일 프로세서에서 여러 thread의 프로세스들이 interleaving(끼어들기)하며 동시에 진행이 되고있다고 표현한다. concurrency는 parallelism까지도 표현하는 용어이다. Parallelism : 병렬성 동시에 실행된다. 즉 (b)를 보면 다중 프로세서에서 여러 thread의 프로세스들이 interleaving과 overlapping을 하며 동시에 실행되고 있다. Thread 현대의 OS는 프로세스와 thread의 개념을 분리한다. process는 스케줄링의 단위(실행단위)이면서 자원소유권의 단위이다. thread의 개념을 도입하여, 자원소유권을 process로.. 2021. 5. 16.
Multiprocessor scheduling 단일프로세서 스케줄링은 'time domain'에서 언제 수행할 지를 정한다. multiprocessor 스케줄링은 'space domain'에서 어디에서 수행시킬 것인지를 결정한다. 대부분의 멀티프로세서 스케줄링의 목표는 단일프로세서 스케줄링과 비슷하다. 하지만 멀티프로세서 스케줄링은 아래의 이슈가 있다. ready queue를 어떻게 유지할 지 affinity를 어떻게 정의할 지 다중처리기에서 프로그램을 어떻게 할당할 지 processor heterogeneity를 어떻게 관리할 지 프로세서들간의 workload balance를 어떻게 관리할 지 멀티프로세서에서의 이슈를 크게 두 가지로 나누어 HW issue/SW issue로 구분해보자. HW issue : Cache Affinity multipro.. 2021. 5. 16.
Process Scheduling 2 Burst (time) - CPU Burst : CPU가 실행하면서 걸리는 시간 - I/O Burst : CPU가 I/O를 기다리는 시간 프로세스는 CPU Burst 와 I/O Burst의 반복으로 이루어 질 수 있다! Bound - I/O bound : I/O를 blocking 하기 전 상대적으로 짧은 CPU Burst - CPU bound : I/O를 blocking 하기 전 상대적으로 긴 CPU Burst 스케줄링 CPU utilization : CPU 이용률 ( I/O utilization도 있다) Throughput : 단위시간당 몇 개의 job을 했는지.(시스템중심, 주로 최대화 하는 전략) Turnaround time : 프로세스가 수행되는데 걸리는 시간 Response time : 어떤 요.. 2021. 5. 10.
Process Scheduling 프로세스 스케줄링이란? 스케줄링 알고리즘을 통해 다음에 실행할 프로세스를 결정하는 것 - Long-term scheduling(job scheduling) : 프로세스가 처음 생성되어 system에 추가될 지 말 지를 결정 - medium-term scheduling(swapper) : 어떤 프로세스를 다시 memory로 올려놓을 것인지를 결정 - short-term scheduling(CPU scheduler) : processor scheduler(일반적인 프로세스 스케줄링) + I/O scheduling : I/O request할 때, pending하고 있는 프로세스 중 어떤 request를 선택할 지 결정 schedule함수 안에는 new process를 선택하는 알고리즘이 있다. [selecti.. 2021. 4. 25.
Process Description and Control 3 Process Creation 프로세스는 크게 두 가지 방식으로 생성됨 - 직접 생성 : directed process creation - 복제 : Cloning Directed Process Creation -> 운영체제가 Disk에 있는 프로그램을 memory에 올려서 process로 만들고 process image(PCB)를 만든다. 제일먼저 1. new process를 위한 메모리공간 확보 2. 새로운 메모리 공간에 Load (code,data를 메모리로 load, call stack 생성) 3. PCB 초기화 (pid 할당받고,,, 등등) 4. new process를 ready state 로 전환 (ready-list에 넣는다.) 일반 OS에서 첫 번째 Process는 이런식으로 만든다. ini.. 2021. 4. 16.
Process Description andControl 2 Mode switch vs Process switch 1. Mode switch user mode와 kernel mode 사이의 전환 모드가 전환되더라도 running state인 process상태는 변화되지 않는다. ->같은 프로세스 사이에서 mode switch일 경우 process상태는 바뀌지 않고 모드만 바뀐다는 의미 위와같은 경우, saving/restoring contexts는 오버헤드를 포함한다. 하드웨어적으로 동작 2. Process switch 한 프로세스에서 다른 프로세스로의 전환 현재 process의 context를 저장한다. PCB를 update하여 ready, block 등 상태를 변화시키고 상태에 따라 적절한 queue로 이동한다. 실행을 위한 다른 process를 선택한다. -.. 2021. 4. 13.