일반적으로 프로세스는 실행 중인 프로그램으로 정의한다.
운영체제는 CPU를 가상화하여 이러한 환상을 만들어 낸다.
운영체제는 실행 중인 프로그램의 개념을 지공하는데, 이를 프로세스(proccess)라 한다.
프로세스의 하드웨어 상태 중 가장 중요한 구성 요소는 메모리이다. 명령어는 메모리에 저장된다. 실행 프로그램이 읽고 쓰는 데이터 역시 메모리에 저장된다.
프로그램 실행을 위하여 운영체제가 하는 첫 번째 작업은 프로그램 코드와 정적 데이터를 메모리, 프로세스의 주소 공간에 탑재(load)하는 것이다.
운영체제는 프로그램의 힙(heap)을 위한 메모리 영역을 할당한다. C 프로그램에서 힙은 동적으로 할당된 데이터를 저장하기 위해 사용된다. 프로그램은 malloc()을 호출하여 필요한 공간을 요청하고 free()를 호출하여 사용했던 공간을 반환하여 다른 프로그램이 사용할 수 있도록 한다.
프로세스 상태
• 실행 (Running): 실행 상태에서 프로세스는 프로세서에서 실행 중이다. 즉, 프로세 스는 명령어를 실행하고 있다.
• 준비 (Ready): 준비 상태에서 프로세스는 실행할 준비가 되어 있지만 운영체제가 다른 프로세스를 실행하고 있는 등의 이유로 대기 중이다.
• 대기 (Blocked): 프로세스가 다른 사건을 기다리는 동안 프로세스의 수행을 중단시 키는 연산이다. 흔한 예 : 프로세스가 디스크에 대한 입출력 요청을 하였을 때 프로세스는 입출력이 완료될 때까지 대기 상태가 되고, 다른 프로세스가 실행 상태로 될 수 있다.
'IT > 운영체제' 카테고리의 다른 글
CPU 스케줄링 FIFO, SJF, STCF, RR (0) | 2024.11.19 |
---|---|
운영체제 개요 (0) | 2024.11.17 |
[Linux] PV, VG, LV 명령어 (0) | 2024.08.09 |
파일 시스템(File System) (0) | 2024.08.09 |
리눅스 Destination Host Unreachable 원인과 해결방법 (0) | 2024.08.08 |