본문 바로가기

운영체제16

[운영체제] KOCW 6.3 - Ch7: Deadlock Deadlock: 교착상태 Deadlock: 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Deadlock 발생의 4가지 조건 Mutual exclusion(상호배제): 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. No preemption(비선점): 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗지 않는다. Hold and wait(보유 대기): 자원을 가진 프로세스가 다른 자원을 기다릴 때, 보유 자원을 놓지 않고 계속 가지고 있는다. Circular wait(환형 대기): 자원을 기다리는 프로세스들 간에 사이클이 형성된다. Resource-Allocation Graph(자원할당그래프) R1 --> P1: P1이 R1을 점유하고 있다. P1 --> R1: P1이 R1을 기.. 2023. 6. 9.
[운영체제] KOCW 6.2 - Ch6: Process Synchronization Monitor Monitor ▶ Semaphore의 문제점 코딩하기 힘들다 정확성(correctness)의 입증이 어렵다 자발적 협력(voluntary cooperation)이 필요하다 한번의 실수가 모든 시스템에 치명적인 영향을 미친다 ▶ Monitor 공유데이터에 대한 접근을 책임진다 sleep/wakeup 결정해서 queue에 줄 세우고/queue에서 꺼내온다. - 자원 개수 세는 역할x =/= P(empty), V(full) x.wait(): suspended --> queue에 줄 세운다. x.signal(): wakeup --> 자원 여분이 없어서 queue에 줄 세워져 있는 process를 queue에서 꺼내온다. 1) Bounded-Buffer Problem ※ Semaphore vs. M.. 2023. 6. 9.
[운영체제] KOCW 6.1 - Ch6: Process Synchronization Deadlock and Starvation ▶ Deadlock: 둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 event를 무한히 기다리는 현상 --> Problem: Starvation Solution: P(S) --> Q(S)로 순서를 고정시킨다. Classical Problems of Synchronization Bounded-Buffer Problem (Producer-Consumer Problem) Readers-Writers Problem Dining-Philosophers Problem 1) Bounded-Buffer Problem ▶ 생산자 문제 빈 buffer(자원)가 없을 때 두 생산자가 동일한 buffe(shared data)에 data를 집어넣는 문제 ▶ 소비자 문제 찬 .. 2023. 6. 9.
[운영체제] KOCW 5.3 - Ch6: Process Synchronization The Critical-Section Problem Initial Attempts to Solve Problem ▷ lock/unlock critical section 수행중일 때: lock --> 다른 code는 동일한 공유데이터에 접근하는 critical-section을 수행할 수 없다. critical section 수행이 끝났을 때: unlock --> exit section 프로그램적 해결법의 충족 조건 Mutual Exclusion(상호배제): 프로세스 P가 critical section 부분을 수행중이면, 다른 모든 프로세스들은 그 critical section에 들어갈 수 없다. Progress(진행): 아무도 critical section에 있지 않은 상태에서, critical secti.. 2023. 6. 9.
[운영체제] KOCW 5.2 - Ch6: Process Synchronization 데이터의 접근 Race Condition: 경쟁 상태 S-box(memory address space)를 공유하는 E-box(CPU process)가 여러 개 있는 경우, race condition의 가능성이 있다. (1) 커널 내부 데이터를 접근하는 루틴들 간의(운영체제에서의) race condition ▶ kernel mode 수행 중 인터럽트 발생 시 Solution: kernel mode 수행 시, interrupt disable ▶ Process가 system call을 하여 kernel mode로 수행중인데, context switch가 일어나는 경우 user mode: 두 프로세스의 address space 간의 data sharing (x) kernel mode: kernel address.. 2023. 6. 9.
[운영체제] Ch1. Introduction to Operating System 1. 운영체제란 무엇인가? 2. 운영체제의 목적 3. 운영체제의 분류(1) 동시작업 가능 여부 1) 단일 작업(single tasking) 2) 다중 작업(multi tasking) (2) 사용자의 수 1) 단일 사용자(single user) 2) 다중 사용자(multi user) (3) 처리 방식 1) 일괄 처리(batch processing) 2) 시분할(time sharing) 3) 실시간(Realtime OS) - Hard realtime system - Soft realtime system 4. 몇 가지 용어1) Multitasking: CPU 2) Multiprogramming: Memory 3) Multiprocess 4) Time sharing: CPU 5) Multiprocessor: M.. 2023. 4. 30.
[운영체제] Ch0. 운영체제 특론 1. 운영체제란 무엇인가? 2. 운영체제의 목적 3. 컴퓨터 시스템의 구조 4. 운영체제의 기능(1) CPU --> CPU 스케줄링 (2) 메모리 --> 메모리 관리 (3) 인터럽트, 캐싱 (4) 디스크 스케줄링 5. 프로세스의 상태● 프로그램 1) Interactive application 2) Scientific application 6. 인터럽트(Interrupt)(1) Timer interrupt --> CPU time sharing (2) I/O device controller 의한 interrupt --> I/O 작업의 완료 7. CPU 스케줄링(1) FCFS(First-Come First-Out) (2) SJF(Shortest Job First) --> minimum average waiti.. 2023. 4. 30.