-
운영체제 - 프로세스Computer science 2022. 4. 4. 23:59반응형
프로세스 상태
- 생성, 준비, 실행, 종료, 대기
프로세스 개념
- 실행중인 프로그램을 의미함
- CPU, 메모리, 입출력장치, 파일 등 실행에 필요한 자원을 한당
- 생성, 준비, 실행, 종료, 대기의 다섯 상태 중 하나로 존재함
- 스케줄링, I/O 대기 등에 따라 준비, 실행, 대기 등으로 상태가 변화되며 동작함
- 프로세스 제어블록은 프로세스를 명시해주는 다양한 내용을 포함
- 쓰레드(Thread)란 하나의 프로그램내에서 제어의 단일 순차적 흐름으로 정의되며, 하나의 쓰레드 내에서는 하나의 실행점만이 존재함
- 하나의 프로세스 내에 하나 이상의 쓰레가 존재할 수 있어 쓰레드를 생성하여 다중처리가 가능
- 스케줄링을 위해 상위, 하위, 중간 단계의 스케줄링 사용
- 새로운 프로세스 생성 ex) fork() -> 시스템 프로세스와 사용자 프로세스 모두 부모 프로세스가 될 수 있다
- 생성된 프로세스의 자원 -> 운영체제로 부터 직접 얻거나 부모 프로세스로부터 일부를 할당(부모 프로세스 자원으로 제한하여 시스템 과부하 방지)
쓰레드
- 프로세스 내에서 다중처리를 위해 제안된 개념
- 하나의 쓰레드 내에서는 하나의 실행점만 존재(디스패칭의 단위)
- 실행에 필요한 최소한의 정보, 자신이 속한 프로세스의 실행환경을 공유
다중 쓰레드의 장점
- 멀티 CPU 또는 멀티코어 시스템에서 병렬처리가 가능함
- 처리 속도별로 나누어진 경우 효율적인 처리가 가능 ex) 계산, 입력, 백업을 병렬 처리
스케줄링의 목표
- 공정성 : 모든 프로세스가 적정 수준에서 CPU 작업을 할 수 있게 함
- 균형 : 시스템의 자원들이 충분히 활용될 수 있게 함
선점 스케줄링 : 진행중인 프로세스를 Interrupt하여 다른 프로세스에 할당
- 높은 우선 순위의 프로세스를 긴급히 처리, 대화식 시분할에서 빠른 응답시간 유지
- 문맥 교환에 따른 오버헤드 발생, PCB 복원 작업
비선점 스케줄링 : 실행이 시작되면 작업 자체가 I/O Interrupt를 걸거나 작업을 종료할 때 까지 실행됨
- 모든 프로세스가 공정하게 순서에 따라 실행 -> 응답시간의 예측이 가능
- 짧은 프로세스가 긴 프로세스를 대기할 수 있음 -> 비효율적
프로세스 제어 블록(PCB)
- 프로세스 관리
- 프로세스 정보를 보관(PID, 프로세스 상태, 프로세스 카운터:현재 실행되는 명령어의 위치, 레지스터, 메모리, 우선순위 등)
- 프로세스마다 각각 존재함
- 프로세스가 진행함에 따라 내용이 변경됨
반응형'Computer science' 카테고리의 다른 글
운영체제 - 스케줄링 알고리즘 (0) 2022.04.03