6. 프로세스 동기화
·
OS
0. 서론 데이터의 접근은 다음과 같은 순서로 일어남 1. 저장 공간에 접근한다. 2. 연산할 데이터를 가져온다. 3. 연산을 실행한다. 4. 연산 결과를 다시 저장한다. 여러 프로그램이 하나의 저장 공간을 공유하는 경우 경쟁 상태가 발생할 수 있음 경쟁 상태 (Race Condition) → 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 상태 운영체제에서 경쟁 상태는 언제 발생하는가? 1. 커널이 작업 수행 중 인터럽트가 발생하는 경우 → 예) 커널이 count++ 연산 수행 중 인터럽트가 발생하고, 인터럽트 서비스 루틴이 count-- 연산 수행 후 복귀 시 커널은 count-- 수행 전 데이터를 가지고 있음 → 해결 : 커널이 작업 수행 중 인터럽트가 발생하더라도 수..
5. CPU 스케줄링
·
OS
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는 입..
4. 프로세스 생성
·
OS
1. 프로세스 생성부모 프로세스가 자식 프로세스를 생성 ☞ 프로세스의 트리 계층 구조 형성 모든 프로세스는 자원을 필요로 함1. 운영체제로부터 직접 자원을 전달받음2. 부모 프로세스와 자원을 공유함→ 부모와 자식이 모든 자원을 공유하는 모델 → 일부를 공유하는 모델 → 전혀 공유하지 않는 모델 (일반적)UNIX의 예fork() 시스템 콜 → 부모 프로세스는 해당 시스템 콜을 통해 자신의 복사본을 자식 프로세스로 생성 → 이때 자식 프로세스는 프로세스 ID를 제외한 부모 프로세스의 모든 정보 (문맥)를 복사exec() 시스템 콜 → 자식 프로세스는 해당 시스템 콜을 통해 자신의 메모리 영역을 새로운 프로그램으로 덮어씌움 2. 프로세스 종료자발적 종료 exit() 시스템 콜→ 운영체제에 자신이 종료됨을 통보..
3. 프로세스
·
OS
1. 프로세스프로세스 (Process)란?실행 중인 프로그램 프로세스 메모리 영역하나의 프로세스는 크게 Code 영역, Data 영역, Stack 영역으로 나뉘어 저장 → Code 영역 : 코드가 기계어 명령어 형태로 변환되어 저장되는 영역 → Data 영역 : 전역 변수 등 프로그램이 사용하는 데이터가 저장되는 영역 → Stack 영역 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 지역변수나 매개변수 등의 데이터가 임시로 저장되는 영역 문맥 (Context)하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보 문맥의 구성요소프로세스 메모리 영역하드웨어 문맥 → CPU의 수행 상태를 나타내는 문맥 → 예) 프로그램 카운터값, 그 외 레지스터값커널 문맥 → 운영체제가 프로세스를 관리하..