[운영체제] 프로세스

Woohyun Shin·2022년 2월 26일
0

운영체제

목록 보기
2/3

프로세스의 정의


프로세스란 실행중인 프로그램을 의미한다.

운영체제에서의 작업 단위는 프로세스이며, 작업을 수행하기 위해 CPU time과 메모리, 확실한 리소스(Files, I/O device)들을 필요로 한다.

OS가 해야하는 가장 기본적인 일은 프로세스를 관리하는 것이다.

여러 개의 섹션으로 나눠져 있는 프로세스들을 살펴보면 다음과 같다.

Text section : 명령어들(the executable code)
Data section : 전역변수들(global variables)
Heap section : 메모리 allocatation
Stack section : 함수 호출할 때의 데이터 임시 저장(함수 매개변수, 주소 반환값, 지역 변수)



New : 프로세스가 생성된 상태
Running : 정렬된 프로세스를 CPU가 읽고 실행하는 명령어들이 실행중인 상태
Waiting : 다른 실행중인 프로세스로 인해 기다리고 있는 상태
Ready : CPU를 점유할 준비되어있는 상태
Terminated : 종료한 상태



각각의 프로세스를 관리하기 위해서 운영체제에서는 PCB(Process Control Block)이라는 구조체로 프로세스들을 표시한다.

PCB에는 특정 프로세스와 관련된 많은 정보가 포함되어 있다.

프로세스 상태, PC, CPU 레지스터, CPU-스케쥴링 정보, 메모리 관리 정보(할당 관련), 입출력 정보 등


프로세스는 단일 스레드 실행을 수행하는 프로그램이다.
• 단일 제어 스레드를 통해 프로세스는 한 번에 하나의 작업만 수행할 수 있다.
• 최신 운영 체제는 프로세스가 여러 스레드를 실행하여 한 번에 둘 이상의 작업을 수행할 수 있도록 프로세스 개념을 확장했다.(운영체제의 존재 이유)

스레드는 가벼운 프로세스이다.(위에서의 thread와는 다른 의미, 4장에서 멀티스레딩에 대해서 다룰 것)


▪ 멀티프로그래밍의 목적은 CPU 활용도를 최대화하기 위해 어떤 프로세스를 항상 실행시키는 것이다.
▪ 시간 공유의 목적은 사용자가 실행 중인 각 프로그램과 상호 작용할 수 있도록 프로세스 간에 CPU 코어를 자주 전환하는 것이다.

profile
조급함보다는 꾸준하게

0개의 댓글