반응형
SMALL
멀티 프로그래밍
- 목적: CPU의 활용도를 극대화하는 것입니다. 이를 위해, 하나의 프로그램이 I/O 작업 등으로 대기 상태에 있을 때 다른 프로그램이 CPU를 사용할 수 있도록 합니다.
- 동작 원리: 프로그램이 CPU를 사용하다가 파일을 읽는 등의 작업으로 대기 상태가 되면, 운영 체제는 대기 중인 다른 프로그램을 CPU에 할당합니다. 이는 시스템 자원의 효율적 사용을 가능하게 합니다.
멀티 태스킹과 멀티 프로세싱
- 멀티 태스킹
- 정의: 단일 CPU에서 여러 프로세스 또는 작업을 동시에 처리하는 기술입니다.
- 메커니즘: 시간을 매우 짧은 단위로 분할하여, 각 프로세스에 번갈아 할당함으로써 동시에 실행되는 것처럼 보이게 합니다.
- 멀티 프로세싱
- 정의: 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 실행하는 기술입니다.
- 장점: 프로세스 실행 속도가 극대화되며, 하나의 CPU에서 발생할 수 있는 병목 현상을 줄일 수 있습니다.
스케쥴링 알고리즘
- FIFO (First Come First Served)
- 특징: 가장 간단한 스케쥴링 알고리즘으로, 먼저 도착한 프로세스를 먼저 처리합니다.
- 단점: 짧은 작업이 긴 작업 뒤에 오면 대기 시간이 길어질 수 있습니다.
- 최단 작업 우선 (Shortest Job First, SJF)
- 특징: 실행 시간이 가장 짧은 프로세스를 우선적으로 처리합니다.
- 장점: 평균 대기 시간을 줄일 수 있습니다.
- 우선순위 기반 스케쥴러
- 정적 우선순위: 프로세스가 생성될 때 미리 지정된 우선순위에 따라 처리합니다.
- 동적 우선순위: 시스템의 상황에 따라 우선순위가 변경될 수 있습니다.
- Round Robin
- 특징: 각 프로세스에 동일한 시간 동안 CPU를 할당하고, 순환식으로 처리합니다.
- 장점: 응답 시간이 예측 가능하며 공정한 시스템입니다.
프로세스 상태
- Running State: 프로세스가 CPU에서 명령어를 실행 중인 상태입니다.
- Ready State: 프로세스가 CPU에서 실행될 준비가 되어 있는 상태입니다.
- Block State: 프로세스가 I/O 작업과 같은 특정 이벤트를 기다리는 상태입니다.
프로세스 구조
- 프로세스 메모리
- Text (Code): 프로그램의 실행 코드가 저장됩니다.
- Data: 초기화된 전역 변수와 정적 변수가 저장됩니다.
- Stack: 함수 호출, 로컬 변수 등 임시 데이터가 저장됩니다.
- Heap: 동적으로 할당된 메모리가 저장됩니다.
- 제어 블록
- PC (Program Counter): 다음에 실행할 명령어의 주소를 가리킵니다.
- SP (Stack Pointer): 현재 스택의 최상단을 가리킵니다.
프로세스와 컴퓨터 구조
- PC와 SP는 프로그램의 실행 상태를 나타내는 데 중요합니다.
- 임베디드 시스템과 같은 경우, 디버깅 시 이러한 값들을 캡처하여 프로그램의 상태를 파악합니다.
반응형
LIST
'Backend > CS' 카테고리의 다른 글
2. 운영체제 (힙과 컨텍스트스위칭 이해) (0) | 2023.12.14 |
---|---|
2. 운영체제(프로세스 개념 및 스케줄링) (0) | 2023.12.11 |
2. 운영체제 (커널 모드와 사용자 모드 이해) (2) | 2023.12.07 |
2. 운영체제(운영체제 개념 및 커널과 쉘 이해) (1) | 2023.12.06 |
1. 컴퓨터 구조 (Program Counter) (0) | 2023.12.04 |