1. 교착 상태 (Deadlock) 일련의 프로세스들이 서로가 가진 자원을 기다리며 Blocked 된 상태자원 (Resource) : 프로그램 실행에 마땅히 필요한 요소 → 하드웨어, 소프트웨어 등을 포함 2. 교착 상태 발생 4조건1. 상호 배제 (Mutual Exclusion)한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어갈 수 없음→ 임계 구역 문제 해결 3원칙에도 포함됨 2. 점유와 대기 (Hold and Wait)자원을 할당받은 상태에서 다른 자원을 할당받기를 기다림 3. 비선점 (Non-preemptive)어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗을 수 없음 4. 원형 대기 (Circular Wait)자원을 기다리는 프로세스 간 사이클이 형성됨 위 조건이 모두 ..
운영체제
0. 서론 데이터의 접근은 다음과 같은 순서로 일어남 1. 저장 공간에 접근한다. 2. 연산할 데이터를 가져온다. 3. 연산을 실행한다. 4. 연산 결과를 다시 저장한다. 여러 프로그램이 하나의 저장 공간을 공유하는 경우 경쟁 상태가 발생할 수 있음 경쟁 상태 (Race Condition) → 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 상태 운영체제에서 경쟁 상태는 언제 발생하는가? 1. 커널이 작업 수행 중 인터럽트가 발생하는 경우 → 예) 커널이 count++ 연산 수행 중 인터럽트가 발생하고, 인터럽트 서비스 루틴이 count-- 연산 수행 후 복귀 시 커널은 count-- 수행 전 데이터를 가지고 있음 → 해결 : 커널이 작업 수행 중 인터럽트가 발생하더라도 수..
0. 서론프로세스에서 실행하는 작업은 두 가지로 나뉨CPU Burst → CPU를 사용하는 작업I/O Burst → 입출력장치를 사용하는 작업 CPU Bound Process & I/O Bound Process각각 CPU 집중 프로세스와 I/O 집중 프로세스를 의미 → CPU 집중 프로세스는 소수의 긴 CPU Burst로 구성됨→ I/O 집중 프로세스는 다수의 짧은 CPU Burst로 구성됨일반적으로 컴퓨터 시스템 내에서 수행되는 프로세스는 I/O 집중 Process가 더 많음 → 이는 대부분 대화형 작업으로 사용자와 인터랙션을 해가며 프로그램을 수행두 프로세스가 동시에 CPU를 요구했다면? → I/O Bound Process에 먼저 CPU를 할당하는 것이 효율적 → I/O Bound Process는 입..
1. 프로세스 생성부모 프로세스가 자식 프로세스를 생성 ☞ 프로세스의 트리 계층 구조 형성 모든 프로세스는 자원을 필요로 함1. 운영체제로부터 직접 자원을 전달받음2. 부모 프로세스와 자원을 공유함→ 부모와 자식이 모든 자원을 공유하는 모델 → 일부를 공유하는 모델 → 전혀 공유하지 않는 모델 (일반적)UNIX의 예fork() 시스템 콜 → 부모 프로세스는 해당 시스템 콜을 통해 자신의 복사본을 자식 프로세스로 생성 → 이때 자식 프로세스는 프로세스 ID를 제외한 부모 프로세스의 모든 정보 (문맥)를 복사exec() 시스템 콜 → 자식 프로세스는 해당 시스템 콜을 통해 자신의 메모리 영역을 새로운 프로그램으로 덮어씌움 2. 프로세스 종료자발적 종료 exit() 시스템 콜→ 운영체제에 자신이 종료됨을 통보..