2.1 개요 ★TIP 프로세스란? 부팅 실행중인 프로그램, 비동기적 행위 등 일반적으로 “실행중인 프로그램”이라는 개념이 가장 널리 사용 ★TIP 부팅 ROMBIOS 구동 -> 펌웨어 환경설정 파일 구동 -> config.sys 내부명령어 적재 -> command.com 자동배치파일 구동 -> AUTOEXEC.BAT OS의 core(핵) ->”커널”
2.2 프로세스 상태전이와 제어블럭(시험★) 디스패칭 : 준비리스트의 맨 앞에 있던 프로세스가 CPU를 취하게 되 는 것 dispatch(process name) : ready -> running 실행상태 exit 종료상태 dispatch (schedule) 할당시간종료 (timer run out) 보류(sleep, block) 준비상태 보류상태 조건만족(wake up) swap-in (resume) swap-in (resume) 활동상태 swap-out (suspend) swap-out (suspend) 지연상태 지연 준비상태 지연 대기상태 조건만족(wake up)
프로세스 전이상태 실행(Running) : 프로세스가 CPU를 차지하고 있는 상태 준비(Ready) : 프로세스 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태 보류(Block) : 프로세스가 어떤 사건이 일어나길 대기하고 있는 상태 교착상태(Deadlock) : 프로세스가 결코 일어날 수 없는 사건 발생을 기다리는 상태 dispatch : ready -> running 준비상태에 있는 프로세스 중에서 우선순위가 가장 높은 프로세스를 선택하여 프로세스를 할당하는 것 timerrunout(시간종료) : running -> ready 프로세스의 할당 시간이 완료되면 실행상태의 프로세스는 준비 상태로 전이되고 프로세스는 다른 프로세스에게 할당된다. block : running -> blocked(대기상태) 실행중인 프로세스가 자신의 입출력 명령을 수행하기 위해 프로세스를 반납하고 입출력 완료 신호가 올 때까지 대기 상태로 전이되는 것 wakeup(조건만족) : blocked -> ready 대기 중인 프로세스가 입출력이 완료 신호가 올 때까지 대기 상태로 전이되는 것을 의미 한다.
프로세스 제어블럭(PCB) 다중 프로세스 시스템에서 실행되고 있는 프로세스 프로세스의 현 상태 프로세스의 고유한 식별자 프로세스의 우선순위 프로세스의 적재된 부분을 가리키는 포인트 프로세스에 할당된 가리키는 포인트 레지스터 내용을 저장하는 장소 프로세스 부모에 대한 한 포인트 프로세스 자식에 대한 한 포인트
2.3 프로세스에 대한 작업 시스템이 프로세스에 수행하는 작업 프로세스 생성에 필요한 작업 프로세스의 생성 프로세스의 파괴 프로세스의 서스펜드 프로세스의 재시작 프로세스의 우선순위 변경 프로세스의 보류 프로세스의 깨움 프로세스의 디스패치 프로세스 생성에 필요한 작업 프로세스의 이름결정 프로세스에 초기 우선순위를 부여 PCB의 생성 프로세스에 초기자원을 할당 시스템에 존재하고 있는 프로세스들의 리스트에 삽입
프로세스 생성의 계층구조 프로세스 파괴 서스펜드된 프로세스 시스템으로부터 프로세스를 제거 프로세스에 속하던 자원은 시스템으로 돌아감 프로세스는 테이블에서 사라지고 PCB도 없어짐 A B C D E F G H I 서스펜드된 프로세스 다른 프로세스가 재시작 시켜주기 전까지 진행불가능 짧은시간동안 지속 프로세스의 우선순위를 바꾼다는 것은 그것의 PCB에 있는 우선순위의 값을 바꾼다는 의미
2.4 서스펜드와 재시작 suspend : ready -> suspended ready 단일 프로세서 시스템 : 프로세스 자신이 서스펜드 시킴 다중 처리 시스템 : 한 프로세서에서 실행중인 프로세스가 다 른 프로세서에서 실행중인 프로세스에 의해 서스펜드 될 수 있 음 준비상태 (ready) 보류상태 (blocked) 입출력 완료 또는 사건완료 dispatch 입출력대기 또는 사건대기 서스펜드 (suspend) 타이머종료 서스펜드 (suspend) 재시작 (resume) 재시작 (resume) 실행상태 (running) 활동상태 서스펜드상태 입출력 완료 또는 사건완료 서스펜드된 준비상태 (suspended ready) 서스펜드된 보류상태 (suspended block)
서스펜드된 준비 상태에 있는 프로세스는 타 프로세스에 의해 준비 상태로 상태 전이를 일으킴 서스펜드된 준비 상태에 있는 프로세스는 타 프로세스에 의해 준비 상태로 상태 전이를 일으킴 resume : suspended ready -> ready 보류 상태에 있는 프로세스도 타 프로세스에 의해 서스펜 드 될 수 있음 suspend : blocked -> suspended blocked 서스펜드된 보류 상태의 프로세스는 타 프로세스에 의해 재시작 될 수 있음 resume : suspended blocked -> blocked 서스펜드는 시급한 원인 때문에 생기는 상황이므로 입출 력 작업 종료를 기다리는 중에 서스펜드 시키든지, 준비 상태로 바뀐 후 서스펜드 되어져야 하는데 즉각 해줄수록 좋다. 다음은 입출력이 끝났을 때의 상태전이 completion : suspended blocked ready
2.5 인터럽트 처리 인터럽트란? 운영체제가 제어권을 갖고 컴퓨터가 작업을 수행하는 동안 컴퓨터의 내부 또는 컴퓨터의 주변에서 예기치 않은 일이 발생하는 것 운영체제가 제어권을 갖고 운영체제는 인터럽트를 받은 프로세스의 상태를 저 장해둔다 (PCB에 저장) 운영체제는 인터럽트를 분석하여 인터럽트를 처리 할 수 있는 적절한 루틴 (routine)으로 제어권을 보 내준다.
2.5.1 인터럽트의 종류 감시 프로그램 호출 인터럽트 입출력 인터럽트 외부 인터럽트 재시작 인터럽트 프로그램 검사 인터럽트 프로세스가 SVC를 수행하면 이 인터럽트가 걸린다. SVC는 일반 사용자 프로그램이 생성하는데 보통 입출력 수행, 기억장치의 할당 또는 오퍼레이터와의 대화 등을 하기 위해 생성, 사용자로부터 운영체제를 보호하는 기능도 함 입출력 인터럽트 입출력 하드웨어에 의해 발생 입출력 하드웨어가 CPU에게 채널이나 입출력기기의 상태변화를 알려주는데 입출력이 완료되었거나 에러가 발생했을 때 또는 대기상태에 있을 때 발생 외부 인터럽트 인터럽트 시계에서 일정한 시간이 만기가 된 경우 또는 오퍼레이터가 콘솔에서 인터럽트 키를 입력하는 경우 또는 다중처리 시스템에서 다른 CPU로부터 신호가 왔을 경우 발생 재시작 인터럽트 오퍼레이터가 콘솔에서 재시작 단추를 누를때 또는 다중처리시스템에서 다른 CPU로부터 재시작 SIGP 명령문이 도착되면 발생 프로그램 검사 인터럽트 수행중인 프로세스가 0으로 나누거나 허용되지 않은 명령문을 실행하거나 오퍼레이션 코드를 잘못 사용할 때 발생
2.5.2 문맥교환 문맥교환이란? 현재 PSW에 있는 내용을 그 인터럽트에 대응하는 과거 PSW 로 옮긴다 인터럽트 발생시 운영체제가 인터럽트를 받은 프로세스의 상태를 기억시켜 제어권을 IH에게 넘기는 것 현재 PSW에 있는 내용을 그 인터럽트에 대응하는 과거 PSW 로 옮긴다 인터럽트에 대응하는 새로운 PSW로부터 그 내용을 현재 PSW 로 옮긴다 새로운 PSW 과거 PSW 관리자호출(SVC) 관리자호출(SVC) 입출력 입출력 외부 외부 현재 PSW 재시작 재시작 프로그램검사 프로그램검사 기계검사 기계검사 <인터럽트 처리 중에서의 PSW 교환>