-
프로세스
실행중인 프로그램을 말하며, 현대 시분할 시스템에서 프로세스는 작업의 단위이다.
시분할 시스템은 사용자 프로그램 또는 태스크를 수행한다.
프로세스는 프로그램카운터, 레지스터, 스택, 텍스트 섹션, 데이터 섹션을 포함한다.
프로그램과 프로세스의 차이
프로그램은 디스크에 저장된 수동적인 존재이고
프로세스는 프로그램 카운터 및 관련된 자원의 집합을 가진 능동적인 존재이다.
다중 인스턴스 : 동일한 프로그램이 여러 개의 프로세스가 될 수도 있다.
프로세스 상태
프로세스는 실행되면서 그 상태가 변한다.
프로세스의 상태는 그 프로세스의 현재 활동에 따라서 정의된다.
새로운 : 프로세스가 생성 중
실행 : 명령어들이 실행되고 있음
대기 : 프로세스가 어떤 사건이 일어나기를 기다림
준비 완료 : 프로세스가 CPU에 할당 되기를 기다림
종료 : 프로세스의 실행이 종료됨
프로세스 제어 블록
프로세스 제어 블록은 특정 프로세스와 연관된 여러 정보를 수록한다.
프로세스 상태 : 새로운, 준비 완료, 실행, 대기, 준비 완료, 종료 상태 등이다.
프로그램 카운터 : 이 프로세스가 다음에 실행할 명령어 주소를 가리킨다.
CPU 레지스터들 : 컴퓨터의 구조에 따라 다양한 수와 타입을 가진다.
CPU 스케줄링 정보 : 프로세스 우선 순위, 스케줄 큐에 대한 포인터와 스케줄 매개변수를 포함한다.
메모리 관리 정보 : 기준 레지스터와 한계 레지스터의 값, 페이지 테이블, 세그먼트 테이블 등을 포함한다.
회계 정보 : CPU 사용 시간, 경과된 시간, 시간 제한, 계정 번호, 잡 또는 프로세스 번호를 포함한다.
입출력 상태 정보 : 프로세스에게 할당된 입출력 장치들과 열린 파일의 목록 등을 포함한다.
스레드
스레드가 프로그램을 실행 중이면 실행되는 명령어의 단일 스레드가 존재한다.
이 단일 스레드는 한번에 한 가지 일만 실행 되도록 허용한다.
현재 운영체제는 프로세스 개념을 확장하여 한 프로세스가 다수의 실행 스레드를 가질 수 있도록 허용하기에 스레드가 병렬로 실행 될 수 있다.
스레드를 지원하는 시스템에서 프로세스 제어 블록에는 각 스레드에 관한 정보가 포함되어 있다.
'운영체제 > 프로세스' 카테고리의 다른 글
클라이언트 서버 환경에서 통신 (0) 2018.02.03 프로세스간 통신 (0) 2018.02.03 프로세스에 대한 연산 (0) 2018.02.03 스케줄러 (0) 2018.02.03 프로세스 스케줄링 (0) 2018.02.03
댓글