Operating System(OS)에 이어서 Part2에는 다음과 같은 순서*로 알아보겠습니다.
*공룡책을 기반
[프로세스 관리]
1. 프로세스
2. 스레드와 병행성
3.CPU 스케줄링
[프로세스 동기화]
4. 프로세스동기화
5. 동기화 예제
6. 교착상태
[메모리 관리]
7. 메인 메모리
8. 가상 메모리
[저장장치 관리]
9. 대용량 저장장치 구조
10. 입출력 시스템
[파일시스템]
11. 파일시스템
12. 파일시스템 구현
* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.
Operating System(OS) Part2 - 1. 프로세스
1. 개요
프로세스는 운영 체제에서 실행 중인 프로그램을 가리킵니다. 이는 메모리에 로드되어 CPU의 실행을 위해 준비되어 있는 작업 단위입니다. 프로세스는 운영 체제가 관리하는 주체로, 시스템 리소스를 할당받아 작업을 수행합니다.
2. 프로세스 정의
프로세스는 프로그램을 실행하는 인스턴스로, 실행 중인 프로그램의 코드, 데이터, 메모리 상태, CPU 레지스터 상태, 입출력 상태 등을 포함합니다. 각 프로세스는 고유한 프로세스 ID (PID)를 가지며, 운영 체제에 의해 관리됩니다.
3. 프로그램과 프로세스
프로그램은 디스크에 저장된 실행 가능한 파일로, 정적인 상태를 갖고 있습니다. 프로세스는 프로그램이 메모리에 로드되어 실행 중인 상태를 의미하며, 동적인 상태를 가집니다. 즉, 프로세스는 실행 중인 프로그램의 인스턴스입니다.
4. 프로세스 상태
프로세스는 다양한 상태를 갖습니다. 대표적으로 준비 상태, 실행 상태, 대기 상태 등이 있으며, 이러한 상태는 프로세스 스케줄링에 따라 변화합니다. 상태 전이는 프로세스의 상태가 변경되는 것을 의미하며, 예를 들어 실행 중인 프로세스가 입출력 요청을 하면 대기 상태로 전이됩니다.
-생성 상태(New) : 프로세스가 처음 생성되었을 때입니다.
-준비 상태(Ready): 실행을 기다리는 상태로, CPU를 할당받을 준비가 되어 있습니다.
-실행 상태(Running): CPU를 할당받아 코드를 실행하는 상태입니다.
-대기 상태(Blocked): 특정 이벤트를 기다리는 상태로, 입출력 작업 등이 완료될 때까지 대기합니다.
-종료 상태(Terminated): 프로세스의 실행이 완료되어 종료된 상태입니다.
5. 프로세스 제어 블럭(Process Control Block)
PCB는 각 프로세스에 대한 정보를 저장하는 자료구조입니다. 프로세스의 상태, 프로그램 카운터 값, 레지스터 상태, 메모리 할당 정보, 입출력 상태 등의 정보를 포함하고 있습니다. 운영 체제는 PCB를 사용하여 프로세스를 관리하고 상태를 추적합니다.
6. 프로세스 스케줄링 (Process Scheduling)
프로세스 스케줄링은 다중 프로세스 환경에서 CPU 자원을 효율적으로 할당하는 방법입니다. 이는 프로세스의 상태 전이와 관련되며, 운영 체제는 다양한 스케줄링 알고리즘을 사용하여 프로세스를 관리합니다. 주요 스케줄링 알고리즘에는 FCFS(First-Come, First-Served), SJF(Shortest Job First), Round Robin 등이 있습니다.
-FCFS(First-Come, First-Served): 도착한 순서대로 프로세스를 실행하는 방식입니다.
-SJF(Shortest Job First): 실행 시간이 가장 짧은 프로세스를 우선하여 실행하는 방식입니다.
-Round Robin: 각 프로세스에 동일한 시간 할당 후 순환하며 실행하는 방식입니다.
7. 문맥교환(Context Switch)
프로세스가 실행되다가 인터럽트가 발생해 운영체제가 개입하여 프로세서에 할당된 프로세스를 바꾸는 것을 말한다. 시스템 콜을 사용해야 하는 경우 프로세스가 자체적으로 처리할 수 없기 때문에 운영체제가 개입해야 한다. 프로세서가 다른 프로세스로 스위치 할 때, 시스템은 작업 중이던 프로세스의 상태를 저장하고 새로운 프로세스의 상태를 로드한다. 컴퓨터과학에서 콘텍스트는 내 시스템에서 활용 가능한 모니터링된 정보들을 의미한다. 프로세서 입장에서 콘텍스트는 PCB이기 때문에 PCB 정보가 바뀌는 것을 콘텍스트 스위치라고 부른다. 콘텍스트 스위치는 오버헤드가 발생하는 작업이기 때문에 너무 자주 일어나면 성능을 저하한다.
8. 프로세스에 대한 연산 (Operation on Processes)
운영 체제는 프로세스를 관리하기 위해 다양한 연산을 제공합니다. 이러한 연산에는 프로세스 생성, 중지, 일시 중지, 재개, 우선순위 변경 등이 포함됩니다. 프로세스 관리를 위해 운영 체제는 적절한 권한을 가진 프로세스에 대한 연산을 수행합니다.
-프로세스 생성: 운영 체제는 fork() 시스템 호출을 통해 새로운 프로세스를 생성합니다.
-프로세스 종료: exit() 시스템 호출을 통해 프로세스를 종료하고 자원을 반환합니다.
9. 프로세스 간 통신 (Interprocess Communication)
프로세스 간 통신은 서로 다른 프로세스 간에 데이터를 교환하거나 동기화하는 메커니즘을 의미합니다. 이는 다중 프로세스 환경에서 작업들이 협력하여 문제를 해결하는 데 중요합니다. 프로세스 간 통신은 공유 메모리, 메시지 전달, 파일 공유 등 다양한 방법으로 이루어질 수 있습니다.
독립 프로세스: 각 프로세스는 자체의 메모리를 가지며, 통신 없이 독립적으로 실행됩니다.
공유 프로세스: 공유 메모리를 통해 데이터를 공유하고 통신하는 프로세스입니다.
메시지 전달: 프로세스 간 데이터 전달을 위해 운영 체제가 제공하는 메시지 전달 시스템을 이용합니다.
10.종합
프로세스는 운영 체제에서 핵심적인 역할을 수행하며, 이를 이해하는 것은 시스템 관리와 프로그래밍에 있어서 필수적입니다. 위의 순서로 설명된 내용은 프로세스의 전반적인 이해를 제공하고, 운영 체제의 핵심적인 기능 중 하나인 프로세스 관리에 대한 중요한 개념을 다루고 있습니다.
'IT Auditor Study > 운영체제' 카테고리의 다른 글
[Part2-공룡책] 3. CPU 스케줄링(1/2) - Operating System(OS) (0) | 2024.06.06 |
---|---|
[Part2-공룡책] 2. 스레드와 병행성 - Operating System(OS) (0) | 2024.06.06 |
6. Operating System(OS) - 6. 주요용어 (0) | 2024.04.16 |
5. Operating System(OS) - 5. 시장점유율 (0) | 2024.04.14 |
4. Operating System(OS) - 4. 종류 : 4.4.3. Linux (2) | 2024.04.12 |