본문 바로가기

전체 글

운영체제 강의 20 더보기
운영체제 강의 19 lock을 full++ 과 empty-- 을 하기 전에 했는데, 후에 해야 하지 않나? 더보기
운영체제 강의 18 1. Initial Attempts to Solve Problem ‣ 두 개의 프로세스가 있다고 가정 ‣ 프로세스들은 수행의 동기화(synchronize)를 위해 몇몇 변수를 공유할 수 있다 → synchronization variable 🎯 프로그램적 해결법의 충족 조건 ✓ Mutual Exclusion (상호 배제) : 프로세스 Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical section에 들어가면 안 된다 ✓ Progress (진행) : 아무도 critical section에 있지 않은 상태에서 critical section에 들어가고자 하는 프로세스가 있으면 critical section에 들어가게 해주어야 한다 ✓ Bounded Waiti.. 더보기
운영체제 강의 17 1. 데이터의 접근 데이터는 연산을 필요로 할 때 다른 공간으로 이동하여 연산 후 결과를 다시 받는다. 2. Race Condition 🔍 OS에서 race condition은 언제 발생하는가? 1. kernel 수행 중 인터럽트 발생 시 2. Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 3. Multiprocessor에서 shared memory 내의 kernel data 1. 커널모드 running 중 interrupt가 발생하여 인터럽트 처리루틴이 수행 → 양쪽 다 커널 코드이므로 kernel address space 공유 2. 두 프로세스의 address space 간에는 data sharing이 없음 그러나 syste.. 더보기
운영체제 강의 16 📌 Multiple-Processor Scheduling ‣ CPU가 여러 개인 경우 스케줄링은 더욱 복잡해짐 ‣ Homogeneous processor인 경우 ✓ Queue에 한줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있다 ✓ 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우에는 문제가 더 복잡해짐 ‣ Load sharing ✓ 일부 프로세서에 job이 물리지 않도록 부하를 적절히 공유하는 메커니즘 필요 ✓ 별개의 큐를 두는 방법 vs. 공동 큐를 사용하는 방법 ‣ Symmetric Multiprocessing (SMP) ✓ 각 프로세서가 각자 알아서 스케줄링 결정 ‣ Asymmetric multiprocessing ✓ 하나의 프로세서가 시스템 데이터의 접근과 공유를 책임지고 나머.. 더보기
운영체제 강의 15 5. Multilevel Queue • Ready queue를 여러 개로 분할 ✓ foreground (interactive) ✓ background (batch - no human interaction) • 각 큐는 독립적인 스케줄링 알고리즘을 가짐 ✓ foreground - RR ✓ background - FCFS • 큐에 대한 스케줄링이 필요 ✓ Fixed priority scheduling ‣ serve all from foreground then from background ‣ Possibility of starvation ✓ Time slice ‣ 각 큐에 CPU time을 적절한 비율로 할당 ‣ Eg) 80% to foreground in RR, 20% to background in FCFS.. 더보기
운영체제 강의 14 📌 Scheduling Algorithms • FCFS (First-Come First-Served) • SJF (Shortest-Job-First) • SRTF (Shortest-Remaining-Time-First) • Priority Scheduling • RR (Round Robin) • Multilevel Queue • Multilevel Feedback Queue 1. FCFS (First-Come First-Served) ◎ FCFS : nonpreemptive ◎ Convoy effect : short process behind long process 2. SJF (Shortest-Job-First) ‣ 각 프로세스의 다음번 CPU burst time을 가지고 스케줄링에 활용 ‣ CPU b.. 더보기
운영체제 강의 13 1. CPU와 I/O bursts ✓ CPU burst : 한번에 CPU를 연속적으로 쓰는 시간 ✓ CPU bound job : CPU를 많이 쓰는 프로그램 ✓ I/O bound job : I/O를 많이 쓰고, CPU를 적게 쓰는 프로그램; 주로 사람과의 interaction하는 프로그램이 속함 CPU를 빠르게 주는게 좋음 ⌾ 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다 2. 프로세스의 특성 분류 ✓ I/O-bound process : CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job (many short CPU bursts) ✓ CPU-bound process : 계산 위주의 job (few very long CPU bursts) 3. CPU S.. 더보기