Download presentation
Presentation is loading. Please wait.
1
Chapter2 프로세스란 조은성
2
프로세스의 개요 프로세스에 대한 정의는 실행중인 프로그램, 비동기 적 행위 등 여러 가지가 있다. 일반적으로 ‘실행중인 프로그램’ 이라는 개념이 가장 널리 사용된다. 하나의 프로세스가 시스템 내에서 존재할 동안 그 프 로세스는 계속해서 일련의 서로 구분되는 상태를 거 치게 된다. 프로세스가 CPU를 차지하고 있으면 실행 중 (running)인 상태, CPU를 사용하고 있지는 않지만 언제나 사용할 수 있는 상태면 준비(ready), 프로세 스가 어떤 사건이 일어나 주길 대기하고 있는 상태면 보류(block)상태에 있다고 한다.
3
프로세스 상태전이 실행(Running) : 프로세스가 CUP를 차지하고 있는 상태
디스패치 (dispatch) 실행상태 보류 준비상태 보류상태 할당시간 종료 (time run out) 조건만족 (wake up) 실행(Running) : 프로세스가 CUP를 차지하고 있는 상태 준비(Ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태 보류(Block) : 프로세스가 어떤 사건이 일어나길 대기하고 있는 상태 교착상태(Deadlock) : 프로세스가 켤코 일어날 수 없는 사건 발생을 기다리는 상태
4
프로세스 제어블럭(PCB) 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 수 있는 저장 장소이다.
운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 수 있는 저장 장소이다. 제어블럭(PCB)이 갖고 있는 프로세스에 대한 정보 다중 프로세스 시스템에서 실행되고 있는 프로세스 프로세스의 현 상태 프로세스의 고유한 식별자 프로세스의 우선순위 프로세스가 적재된 부분을 가리키는 포인트 프로세스에 할당된 자원을 가리키는 포인트 레지스터 내용을 저장하는 장소 운영체제에 의해 효과적으로 사용되어야 하므로 컴퓨터 시스템 은 현재 실행중인 프로세스의 PCB를 가리키고 있는 하드웨어 레 지스터를 가지고 있다.
5
3. 프로세스에 대한 작업 시스템이 프로세스에 대해 수행할 수 있어야 하는 작업 프로세스의 생성시 필요한 작업 프로세스의 생성
프로세스의 파괴 프로세스의 서스펜드(suspend: swap-out; 지연) 프로세스의 재시작(resume; swap-in) 프로세스의 우선순위 변경 프로세스의 보류(block; 대기) 프로세스의 깨움(wakeup) 프로세스의 디스패치(dispatch) 프로세스의 생성시 필요한 작업 프로세스의 이름결정 프로세스의 초기 우선순위를 부여 PCB(Process Control Block)의 생성 프로세스에 초기 자원을 할당. 시스템이 존재하고 있는 프로세스들의 리스트 삽입
6
서스펜드(Suspend)와 재시작(Resume)
입출력 완료 또는 사건완료 준비상태 (ready) 보류생태 (blocked) 디스패치 (dispatch) 입출력대기 또는 사건대기 타이머 종료 실행상태 (running) 재시작 (resume) 서스펜드 (suspend) 서스펜드 (suspend) 재시작 (resume) 서스펜드된 준비상태 (suspended ready) 서스펜드된 보류상태 (suspended block) 입출력 완료 또는 사건완료
7
서스펜드(Suspend)와 재시작(Resume)
resume(process name) : suspended ready→ready 보류 상태에 있는 프로세스도 타 프로세스에 의해 서스펜드 될 수 있다. suspend(process name) : blocked→suspended blocked 서스펜드된 보류 상태의 프로세스는 타 프로세스에 의해 재시작 될 수 있다. resume(process name) : suspended blocked→blocked 서스펜드는 시급한 원인 때문에 생기는 상황이므로 입출력 작업 종료를 기다리는 중에 서스펜드 시키든지, 준비 상태로 바뀐 후 서 스펜드 되어져야 하는데 즉각 해줄수록 좋다. 입출력이 끝났을 때 의 상태전이는 다음과 같다. completion : suspended blocked→suspended ready
8
인터럽트 인터럽트란 컴퓨터가 작업을 수행하는 동안 컴퓨터의 내부 또는 컴퓨터의 주변에서 예기치 않은 일이 발생 하는 것을 말한다. 어떤 작업 처리의 실행 중에 인터럽트가 발생하면 제 어권이 제어 프로그램에게 주어지면 제어 프로그램 중 에 준비된 인터럽트 처리 루틴이 처리된다. 인터럽트가 발생하면 인터럽트는 실행중인 프로세스 에 의해 발생될 수도 있고 그 것과 관계없는 다른 사건 에 의해 발생할 수도 있다. 운영체제가 제어권을 갖고 운영체제는 인터럽트를 받은 프로세스의 상태를 저장해 둔다. (PCB에 저장) 운영체제는 인터럽트를 분석하여 인터럽트를 처리할 수 있는 적절한 루틴(routine)으로 제어권을 보내준다.
9
인터럽트의 종류 감시 프로그램 호출 인터럽트 입출력 인터럽트 외부 인터럽트 재시작 인터럽트 프로그램 검사 인터럽트
프로세스가 SVC를 실행하면 이 인터럽트가 걸린다. 입출력 인터럽트 입출력 하드웨어가 CPU에게 채널이나 입출력기기의 상태 변화를 알려준 다. 외부 인터럽트 인터럽트 시계에서 일정한 시간이 만기가 된 경우 또는 오퍼레이터가 콘 솔에서 인터럽트 키를 입력하는 경우 또는 다중처리 시스템에서 다른 CPU로 부터 신호가 왔을 경우 발생된다. 재시작 인터럽트 오퍼레이터가 콘솔(console)에서 재시작 단추를 누를때 또는 다중처리시 스템에서 다른 CPU로부터 재시작 SIGP(signal processor) 명령문이 도 착되면 발생된다. 프로그램 검사 인터럽트 수행중인 프로세스가 0으로 나누거나 허용되지 않은 명령문을 실행하거 나 오퍼레이션 코드를 잘못 사용할 때 발생 된다.
10
문맥보존과 문맥교환 인터럽트가 발생하면 운영체제는 일단 인터럽트를 받은 프로세스의 상태를 기억시켜 두고 제어권을 IH에게로 넘긴다. 이런 작업을 문맥교 환이라고 한다. PSW(program status word)는 명령문 수행의 순서를 조절하며 프로 세스의 상태에 대한 여러 가지 정보를 보관한다. PSW에는 3종류가 있 는데 현재 PSW, 새로운 PSW, 과거 PSW가 있다. 현재 PSW에 있는 내용을 그 인터럽트에 대응하는 과거 PSW로 옮긴다. 인터럽트에 대응하는 새로운 PSW로 부터 그 내용을 현재 PSW로 옮긴다. 새로운 PSW 과거 PSW 관리자호출(SVC) 관리자호출(SVC) 입 출 력 입 출 력 외 부 외 부 현재 PSW 재 시 작 재 시 작 프로그램 검사 프로그램 검사 기계 검사 기계 검사
Similar presentations