프로세스의 필수 요소는 다음과 같다
프로그램 코드
동일한 프로그램을 실행하는 다른 프로세스와 공유할 수 있다.
해당 코드와 연결된 데이터 집합
프로세서가 프로그램 코드를 실행하기 시작하면, 우리는 이 실행 엔티티를 프로세스라고 한다.
프로그램이 실행되는 동안 이 프로세스는 다음과 같은 여러 요소에 의해 특성화될 수 있다.
디스패처가 A,B,C를 CPU에게 할당해준다.
OS가 다른 프로세스의 명시적 요청에 따라 새로운 프로세스를 생성하는 경우
원본 생성 프로세스이다.
부모 프로세스로부터 파생된 새로운 프로세스이다.
프로세스 생성 이유
new batch job(새로운 일괄처리 작업) : 운영체제가 새로운 작업을 처리할 준비가 되면, 다음에 수행할 일련의 작업제어 명령을 읽어 들일 것이다.
Interactive logon(대화형 로그온): 사용자가 터미널에서 시스템에 로그온 한다.
Created by OS to provide a service(서비스를 제공하기 위해 운영체제가 생성) : 사용자가 대기할 필요 없도록, 운영체제는 사용자 프로그램을 대신해 어떤 기능을 수행할 프로세스를 생성할 수 있다.
Spawned by existing process(기존 프로세스에 의해 생성) : 모듈화를 위해서나 병렬성을 활용하기 위해, 사용자 프로그램은 많은 프로세스의 생성을 명령할 수 있다.
생성 (New) : 막 생성 되었지만, 운영체제에 의해 수행 가능한 프로세스 풀(pool) 로의 진입이 아직 허용되지 않은 프로세스
준비 (Ready) : 기회가 주어지면 수핼될 준비가 되어 있는 프로세스
수행(Running) : 현재 수행 중인 프로세스
블록/대기(Blocked) : 입출력 연산 완료 등과 같은 이벤트가 발생할 때까지 수행될 수 없는 프로세스
종료(Exit) : 프로세스 수행이 halt 중지 되거나 어떤 이유로 중단(abort)되었기 때문에 운영체제에 의해 수행간으 프로세스 풀에서 방출된 프로세스
메인 메모리에서 디스크로 프로세스의 일부나 전체들을 이동하는 것을 포함한다.
기본 메모리의 프로세스 중 준비상태에 있는 것이 없으면 OS는 차단된 프로세스중 하나를 디스크로 전환하여 일시 중단 대기열로 전환합니다.
프로세스를 즉시 실행할 수 없습니다.
사건을 기다리고 있을 수도 있고 그렇지 않을 수도 있다.
어떤 에이전트(프로세스 자체나 부모 프로세스, 혹은 운영체제)가 프로세스의 수행을 막기 위해 그 상태를 보류 상태로 바꾸었다.
에이전트가 제거를 명시적으로 해제 명령을 내릴 때까지 보류 상태에서 벗어날 수 없다.
운영체제가 프로세스와 자원들을 관리하기 위해서는 일들 각각에 대한 현재 상태를 나타내는 정보를 가지고 있어야 한다. 즉 관리하고자 하는 각 개체에 대한 정보를 테이블로 구성해서 유지하는 것이다.
운영체제가 관리해야할 다른 4가지 테이블
메모리 테이블 입출력 테이블 파일 테이블 프로세스 테이블
주기억 장치와 보조기억장치 모두의 자취를 유지하기 위해 사용된다.
프로세스들은 가상메모리나 간단한 스와핑 기법을 사용하여 보조기억장치내에 유지되기도 한다.
반드시 포함되어야 하는 것들
프로세스에게 할당된 주기억장치
프로세스에게 할당된 보조기억장치
어떤 프로세스가 특정 공유 메모리 영역에 접근이 가능하다는 속성등과 같은, 주기억 장치 또는 가상 메모리 블록들에 대한 보호 속성
가상 메모리를 관리하기 위해 필요한 정보
입출력 장치와 컴퓨터 시스템의 채널을 쉽게 관리하기 위해 운영체제에서 사용된다.
언제든지 I/O장치를 사용할 수 있거나 특정 프로세스에 할당할 수 있습니다
I/O 작업이 진행 중인 경우 OS는 다음 사항을 알아야 한다.
입출력 작업상태
I/O 전송의 원본 또는 대상으로 사용되는 주 메모리의 위치
파일의 존재 여부와 보조기억장치에 저장된 파일의 위치, 현재 상태, 그 밖에 다른 속성들에 대한 정보가 저장된다.
이러한 정보들 대부분은 파일 관리 시스템에 의해 유지되고 사용될 수 있으며, 그러한 경우 운영체제는 파일에 대한 정보를 극히 일부만 유지하거나 전혀 유지하지 않는다.
운영체제가 임의 프로세스를 관리하고 제어하기 위해 알아야할 사항들
1. 프로세스 위치
2. 관리에 필요한 프로세스의 속성
Process Location
프로시저 : 루틴, 서브루틴, 함수와 같은 뜻으로 사용되며 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램의 일부이다. 또는 어떤 행동ㅇ르 수행하기 위한 일련의 작업 순설르 말한다.
Process Attributes