728x90
반응형
728x90
반응형
출처 : https://www.youtube.com/watch?v=33OqgesF-mM&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=15 HW solution에서도 여전히 Busy waiting 문제가 남아있었다. Busy waiting 문제를 해결하고자 OS가 지원하는 SW 솔루션들이 등장하게 된다. Spinlock Spinlock은 정수형 변수(S)이다. 초기화, P(), V() 연산으로만 접근 가능 위 연산들은 indivisible (or atomic) 연산 OS가 보장해줌. 즉, P(), V() 연산이 한 번 실행되면 preemptive 되지 않고 끝까지 실행됨 전체가 한 instruction cycle에 수행 됨 P(S) 연산 : S는 물건의 갯수, P는 물..
출처 : https://www.youtube.com/watch?v=Zps0ckSvKys&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=14 SW solution 들은 비효율적이라는 문제점이 있었다. 이 문제를 해결하고자 HW를 활요해서 비효율성을 해결하는 HW solution을 알아보자. Synchronization Hardware TestAndSet(TAS) instruction Test와 Set을 한 번에 수행하는 기계어 Machine instruction Atomicity, Indivisible 실행 중 interrupt를 받지 않음 (preemptive 되지 않음) Busy waiting Inefficient 이 TestAndSet 명령들이 중간의 인터럽트 없이..
출처 : https://www.youtube.com/watch?v=lY43KR3IItw&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=13 Dekker's Algorithm Two process ME을 보장하는 최초의 알고리즘 이전에 사용했던 턴 과 깃발을 둘 다 사용하는 알고리즘 내가 도달하게 되면 깃발을 True로 만든다. 이때, 상대방의 깃발이 False라면 바로 CS에 진입한다. 만약 상대방의 깃발이 True라면, 턴이 내 턴인지, 상대방의 턴인지 확인한다. 만약 내 턴이면 CS에 진입한다. 만약 상대방의 턴이라면 깃발을 내리고 상대방의 턴이 끝날 때까지 (내 턴이 올때까지) 기다린다. 내 턴이 오면 CS에 진입하고 나온 뒤에 상대방에게 턴을 넘기고 깃발을 내린..
출처 : https://www.youtube.com/watch?v=wdaf2gy83uU&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=12 Process Synchronization (프로세스 동기화) 다중 프로그래밍 시스템 여러 개의 프로세스들이 존재 프로세스들은 서로 독립적으로 동작 (동시에 동작) 공유 자원 또는 데이터가 있을 때, 문제 발생 가능 동기화 (Synchronization) : 대화 프로세스들이 서로 동작을 맞추는 것 프로세스들이 서로 정보를 공유하는 것 Asynchronous and Concurrent P's 비동기적(Asynchronous) 프로세스들이 서로에 대해 모름 병행적(Concurrent) 여러 개의 프로세스들이 동시에 시스템에 존재 병행..
출처 : https://www.youtube.com/watch?v=actKUqea6Xc&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=11 이전 장에서 SPN, SRTN, HRRN 스케줄링 기법들을 배웠다. 이 스케줄링 기법들은 효율성, 성능을 높일 수 있었지만 Burst time을 예측 해야하고 이것이 어렵다는 문제점이 있었다. 그래서 Burst time을 예측하지 않고도 비슷한 효과를 내고자 MLQ(Multi-Level Queue), MFQ(Multi-Level Feedback Queue) 스케줄링 기법들이 등장하게 되었다. MLQ(Multi-Level Queue) : ready queue를 여러 개 둬서 작업(혹은 우선순위)를 배정해주겠다. 작업 (or 우선순위)..
출처 : https://www.youtube.com/watch?v=keY9Wi7scEs&t=3s SPN (Shortest-Process-Next) : Burst time이 짧은 애를 먼저 처리해주는 스케줄링 기법 FCFS 알고리즘의 경우 나의 burst time이 짧을 지라도 오래 기달려야 한다는 문제점이 있었다. 그래서 burst time이 짧은 애를 먼저 처리하자는 idea가 등장했다. Non-preemptive scheduling (비선점 스케줄링 : 누구도 내 것을 뺐을 수 없음) 스케줄링 기준 실행시간 (burst time 기준) Burst time 가장 작은 프로세스를 먼저 처리 SJF(Shortest Job First) scheduling SPN(Shortest Process Next) 장점..