본문 바로가기

학교공부/운영체제

(13)
Deadlock Deadlock이란? 각 프로세스가 서로 기다리기만 하는 상태. 이른바 교착상태이다. Deadlock을 발생시키는 네 가지 조건이 있다. 네가지 조건이 모두 만족했을때 Deadlock이 발생할 가능성이 생김. 현재 os에서 deadlock을 다루는 방법 Deadlock prevention : 위 조건 4가지중 하나라도 만족 안하면 prevention 가능 Deadlock avoidance : 운영체제에서 할당하는 자원이 deadlock이 될 가능성이 있는지 판단해서 알맞게 할당해서 avoidance한다. : 근데 너무 복잡하고 overhead가 너무 커서 요즘 운영체제에서는 지원 안한다. Deadlock detection and recovery : 일단 주고 주기적으로 검사한다. 근데 이것도 안씀. 그럼..
Synchronization 두 개 이상의 threads나 processes간에 shared resource가 있는 경우 syschronization을 고려해줘야한다. 그렇지 않으면 race condition(경쟁상태)이 발생할 수 있음 int withdraw (account, amount) { balance = get_balance (account); balance = balance - amount; put_balance (account, balance); return balance; } shared data에 접근과 수정을 동시에 할 수 없음. 따라서 context switch가 일어나면 균일한 결과 기대할 수 없음 이런 구간을 critical section이라고 부르고 이 section을 관리해줘서 synchronization..
Process Scheduling - 2 FCFS/FIFO 먼저 온거 먼저한다 장점 : fair 하다 starvation 안생긴다. 단점 : wating time이 늘어날 수 있다. (ready queue에서 기다리는 시간) SJF shortest-job-first 짧은 일 먼저한다. average waiting time minimum하다. burst time 예측하는거 완벽하지 못하다. 실제로 거의 안씀. Priority Scheduling priority를 지정하여 먼저한다 어떻게 priority를 지정할건지는 issue priority 지정에 따라 SJF가 될수도 FCFS가 될 수도 있다. 우선순위 스케줄링에서 Non-preemptive, preemptive 두 경우 다 가능. 하는중에 우선순위 높은거오면 그거 하냐 아님 하던거 다하고 우..
Process Scheduling 야무지게 알아보자 burst : 실행중인 상태 cpu burst 상태면 현재 running 상태다. I/O burst 면 waiting CPU와 I/O가 돌아가면서 수행된다. 스케줄링 기준 CPU utilization : cpu 사용률 Throughput : cpu가 단위 시간당 처리하는 프로세스의 개수 Turnaround time : 프로세스가 시작해서 끝날 때까지 걸리는 시간 Waiting time : 프로세스가 ready queue에서 기다리는 시간 Response time : 대화식 시스템에서 요청 후 응답이 오기까지 시간 cpu-bound , i/o bound 프로그램에 따라 cpu와 i/o burst time 비율이 다르다. 우리가 쓰는 대부분 프로그램은 i/o bound process이다. ..
동기/비동기/차단/비차단 동기와 비동기 차단과 비차단 너무 헷갈린다. 대충 동기화는 전체 프로세스간의 전달 방식 차단은 한 쓰레드의 상태를 나타내는거 같은데 보통 (차단, 동기), (비차단,비동기)와 묶여서 사용되어 같은듯 다르게 느껴진다. 그래서 내 방식대로 정리할거다. 근데 멍청해서 틀릴 수도 있음. 근데 어느 블로그에선 이걸로 설명하고 어느 블로그에선 틀렸다고 한다. select가 synchronous에 더 가깝다는데 나도 그렇게 생각한다. asynchronous 하면서 blocking 한 경우가 있을까? 순서는 자유로운데 상태는 blocking이면 결국 Synchronous하게 진행되는거 같은뎅 암튼 찾다가 가장 마음에드는 설명을 발견해서 올려본다. (출처 https://stackoverflow.com/questions/..