전체 글 54

Memory Management (1)

Memory Management 기법 Swapping 한정적인 메모리공간을 효율적으로 사용하기 위해 메모리 공간의 프로세스를 하드디스크로 내려보내고, 새로운 프로세스를 메모리에 올리는 것. Contiguous Allocation 한 덩어리로 붙어있는 메모리를 할당해주는 것. Paging 바둑판, 메모리 공간을 Page단위로 쪼개 관리, 할당하는 것. Segmentation 프로그램의 구성요소가 한 덩어리일 필요는 없다. 프로그램을 Segment 단위로 나눠 하나의 Segment는 연속적으로 할당하고, Segment끼리는 연속으로 할당하지 않는 것. Segementation with Paging : Paging + Segmentation Background 모든 프로세스는 실행되기 위해 메모리 위에 올려져..

Computer Science/OS 2023.12.04

7강 연습문제

7.1 Consider the traffic deadlock depicted in Figure 7.9 a. Show that the four neccessary conditions for deadlock indeed hold in this example. Deadlock이 성립하기 위해서는 Mutual Exclusion Hold and Wait No Preemption Circular Wait 를 모두 만족해야 한다. Mutual Exclusion : 각 교차로에서는 한번에 하나의 차량만 지나갈 수 있다. Hold and Wait : 다른 차들이 지나가기 전까지 기다려야 한다. No Preemption : 도로위에 있는 차가 지나가기 전에는 대체되거나 사라질 수 없다. Cicular Wait : 4개의 ..

Computer Science/OS 2023.12.02

Deadlock(2)

Banker’s Algorithm 하나의 자원이 가진 인스턴스가 여러개일 때 Deadlock을 Avoidance하는 방법 프로세스에게 Maximum 자원을 할당해줘도 Safe한지 확인하는 알고리즘 특징 Multiple Instance에 적용 가능 사전에 process가 필요로 하는 자원의 정보가 필요 자원을 얻기전에 Process가 기다릴 수도 있다. 프로세스는 자원을 정해진 시간 내에 반납해야한다. Data Structures for the Banker’s Algorithm Available : 현재 여유분. 여유 자원의 갯수. Available[j] = k 이면 j자원의 갯수가 여유가 k개 있다. Max : Process가 원하는 자원의 최댓값. Max[i][j] = K 이면 Pi가 Rj를 원하는 갯..

Computer Science/OS 2023.12.02

Deadlock(1)

Deadlocks 7강 학습목표 데드락이 무엇인지 알고 데드락에 빠지는 상황과 조건을 안다. 데드락을 예방, 회피하는 방법을 안다. DeadLock 두개 이상의 Process들이 각각의 자원을 Hold한 상태에서 다른 Process의 자원을 받길 기다리는 상태. Ex ) Semaphore A와 B가 1로 초기화 된 후 P0 -> Wait(A); Wait(B); / P1 -> Wait(B); Wait(A); Bridge Crossing Example 차량이 하나밖에 통과할 수 없는 다리를 생각했을 때, 다리 = 자원 차량 = 프로세스 다리의 중간에서 차량이 만난 상황이 데드락 상황이다. 차를 뒤로 뺄 수 없는 상황이다 = 한번 할당된 자원은 반환되지 않는다(No preempt) Starvation이 일어날..

Computer Science/OS 2023.12.01

Process Synchronization(2)

Semaphore Busy Waiting을 필요로 하지 않는 동기화 도구 🛑 Busy Waiting이란? Critical Section에 들어가기 위해 계속 while문의 조건을 검사하느라 바쁘게 기다리는 것. Semaphore는 Integer 변수의 이름을 Semaphore라고 한다. → 공유된 자원의 수를 가르키는 변수‼️ 두 표준함수 **Wait(S)와 Signal(S)**를 통해서 동작한다. Wait(S)와 Signal(S) 은 Atomic한 Operations으로 주어진 작업을 처리할 때 까지 끝까지 동작한다. Binary Semaphore : Semaphore Integer Variable이 0 or 1의 값만 가지는 것. → mutex (mutual exclusive) lock이라고도 한다...

Computer Science/OS 2023.11.30

Process Synchronization(1)

Background. 공유하는 변수(ex.전역변수)에 동시에 접근할 때, 데이터 일관성(Data Inconsistency)의 문제가 발생할 수 있다! 따라서 공유하는 변수에 접근하는 작업을 순서화,동기화 시켜야 한다. → Process Synchronization Producer(Data를 제공하는 Process)와 Consumer(Data를 받는 Process) 관계에서 Counter라는 전역변수를 사용함으로써 둘 사이 버퍼공간을 모두 사용할 수 있다. Producer는 Counter++; Consumer는 Counter--; Producer와 Consumer는 Counter를 공유하므로 Counter라는 전역변수에 대한 데이터 접근에 순서화, 동기화를 해주어야 한다. → Race Condition이 ..

Computer Science/OS 2023.11.30

5강. 연습문제

5.1 Discuss how the following pairs of scheduling criteria conflict in certain settings. a. CPU Utilization and response time CPU Utilization을 높히기 위해서는 Overhead가 가장 적게 발생하도록 Context Switching이 최소화가 되고, 그렇게 되면 Response time이 최대화가 된다. b. Average turnaround time and maximum waiting time Turnaround time을 최소화 하기 위해서는 SJF 방식을 사용해야 한다. 그렇게 되면 처리기간이 긴 task는 starve하게 되고 이들의 waiting time이 길어진다. c. I/O dev..

Computer Science/OS 2023.11.28

CPU Scheduling (2)

Multilevel Queue ⇒ 여러개의 Ready Queue를 사용하는 방식 Foreground Queue = Interactive한 작업을 하는 Process가 기다리는 Queue Background Queue = Batch한 작업을 하는 Process가 기다리는 Queue 각 Queue마다 적용되는 알고리즘이 다르다! Ex) Interactive한 작업을 하는 Foreground Queue = Round Robin 방식 => 반응시간이 좋아진다. Batch한 작업을 하는 Background Queue = FCFS 방식 Scheduling method between the queues Fixed Priority Scheduling : 무조건 Foreground Queue먼저 처리하고, Backgro..

Computer Science/OS 2023.11.28

CPU Scheduling (1)

CPU Scheduling이란? Memory위에 여러 Process들이 올라가 있는 Multiprogramming 환경에서 CPU Utilization(CPU 이용률)을 최대화 하는 것! CPU-Burst와 I/O-Burst가 순환하는 구조를 가진다. CPU Scheduler : 메모리 위의 여러 ready상태의 프로세스 중 하나를 선택하여 CPU에게 넘겨주는 것. CPU Scheduling을 다음과 같은 상황에서 실행된다. Process가 Running → Waiting 일 때 ( I/O 작업이 시작되었을 때) Process가 Terminated 상태일 때 Process가 Running → Ready 일 때 ( Interrupt가 발생했을 때 → Ready Queue안에 변경사항이 생겼을 때) Proc..

Computer Science/OS 2023.11.27