22
프프프프 프프 프프 SIG

운영 체제 Sig

Embed Size (px)

Citation preview

Page 1: 운영 체제 Sig

프로세스

운영 체제 SIG

Page 2: 운영 체제 Sig

프로세스 개념

• 프로세스 • 프로세스란 수행중인 프로그램을 말함 .• 프로그램 카운터의 값과 처리기의 레지스터의 활동 .

• 메모리 상의 프로세스• 스택 : 함수의 매개 변수 복귀 주소 , 지역 변수 저장 .• 데이터 섹션 : 전역 변수 저장 .• 힙 : 실행 중에 동적으로 할당되는 메모리 .

Page 3: 운영 체제 Sig

프로세스 개념

• 프로세스 상태 • 생성 (New) : 프로세스가 생성 중이다 .• 실행 (Running) : 명령어들이 실행 중이다 .• 대기 (Waiting) : 프로세스가 대기 중이다• 준비 완료 (Ready) : 프로세스가 처리기에 할당되기를 기다린다 .• 종료 (Terminated) : 프로세스의 실행이 종료되었다 .

Page 4: 운영 체제 Sig

프로세스 개념

• 프로세스 제어 블록 (PCB)• 프로세스 상태 : New, Ready, Running, Waiting, Terminated• 프로그램 카운터 : • CPU 레지스터들 : Accumulator, Index, Stack, General purpose

Condition code

Page 5: 운영 체제 Sig

프로세스 개념

• 프로세스 제어 블록• CPU 스케줄링 정보 : 프로세스 우선 순위 , 스케줄 큐에 대한 포인터 다른 스케줄 매개 변수들을 포함 .• 메모리 관리 정보 : 베이스 레지스터 , 한계 레지스터의 값 , 페이지 테이블 , 세그먼트 테이블 정보• 회계 정보 : CPU 가 사용된 양 , 시간 , 계정 번호 , 프로세스 번호 .• 입 / 출력 상태 정보 : 프로세스에 할당된 입 / 출력 장치 , 열린 파일 리스트

Page 6: 운영 체제 Sig

프로세스 스케줄링

• 스케줄링• 각 프로세스에 주어진 우선 순위에 따라 어떤 순번으로 어떤 프로세스를 얼마만큼

작동시킬 것인가를 OS 에서 제어하는 방법 .

• 스케줄링 큐• Job queue : 시스템 안의 모든 프로세스로 구성됨 .• Ready queue : 주 메모리에 할당된 프로세스들이 실행을 대기 함 .• Device queue : 입출력 장치를 대기하는 프로세스

Page 7: 운영 체제 Sig

프로세스 스케줄링

• 스케줄링 큐• 프로세스가 입 / 출력 요청을 하여 입 / 출력 큐에 넣어짐 .• 프로세스가 새로운 서브프로세스를 생성하고 그 프로세스의 종료를 기다림 .• 프로세스가 인터럽트의 결과에 의해 강제로 CPU 로부터 제거되고 , 준비 완료

큐에 다시 놓임

Page 8: 운영 체제 Sig

프로세스 스케줄링

• 스케줄러• 장기 스케줄러 프로세스들을 선택하여 실행하기 위해 메모리로 적재하는 기능 .

• 장기 스케줄러 특징 실행 빈도 수가 적다 . 프로세스를 생성하는 간격은 수 분이 될 수 있음 . 다중 프로그래밍의 정도를 제어한다 .

• 단기 스케줄러 실행 준비가 완료되어 있는 프로세스들 중에서 선택하여 하나를 CPU 에 할당 .

• 단기 스케줄러 특징 실행간격이 짧다 .

Page 9: 운영 체제 Sig

프로세스 스케줄링

• 중기 스케줄러• UNIX 와 Microsoft Windows 시분할 시스템들은 장기 스케줄러가 없다 .• 몇몇의 메모리에서 프로세스를 중단하여 다중프로그래밍의 정도를 완화함 .

Page 10: 운영 체제 Sig

프로세스 스케줄링

• 문맥 교환• CPU 를 다른 프로세스로 교환하기 위해서 이전의 프로세스의 상태를 보관하고

새로운 프로세스 실행한다 .

• 문맥 교환 과정• 커널 : 과거 프로세서의 문맥을 PCB 에 저장• 수행이 스케줄된 새로운 프로세스의 저장된 문맥을 복구한다 .

• 문맥 교환 특징• 문맥 교환 시간은 순수한 오버헤드• 속도 결정 요소 : 메모리 속도 , 레지스터의 수 , 특수 명령어• 하드웨어 지원에 따라 시간이 크게 좌우된다 .

Page 11: 운영 체제 Sig

프로세스에 대한 연산

• 프로세스• 대부분 시스템 내의 프로세스들은 병행 수행될 수 있다 .• 반드시 동적으로 생성되고 제거 되어야 한다 .

• 프로세스 생성• 부모 클래스• 자식 클래스

◈ pid : 프로세스 식별자

Page 12: 운영 체제 Sig

프로세스에 대한 연산

• 프로세스 생성• 부모가 계속해서 자식과 병렬로 실행된다 .• 부모가 모든 자식 또는 일부 자식이 끝날 때까지 기다린다 .

• 프로세스 생성 ( 주소 공간 측면 )• 자식 프로세스는 부모 프로세스의 복사본이다 . ( 자식 프로세스는 부모와 똑같은 프로그램과 자료를 가진다 )• 자식 프로세스가 자신에게 적재될 새로운 프로그램을 갖고 있다 .

Page 13: 운영 체제 Sig

프로세스에 대한 연산

• UNIX 프로세스 생성 .

Page 14: 운영 체제 Sig

프로세스에 대한 연산

• 프로세스 종료• exit() 시스템 호출

• 프로세스 종료• 자식 프로세스가 자신에게 할당된 자원을 초과하여 사용할 때• 자식 프로세스에게 할당된 태스크가 더 이상 필요 없을 때• 부모가 종료하는데 운영체제는 부모가 종료한 후에 자식이 수행을 계속하는 것을

허용하지 않는 경우

Page 15: 운영 체제 Sig

프로세스간 통신

• 독립적인 프로세스• 실행중인 다른 프로세스들에게 영향을 주거나 받지 않는다 .

• 협력적인 프로세스• Information sharing 여러 사용자가 동일한 정보를 병행적으로 접근할 수 있는 환경을 제공해야 함 .• Computation speedup 특정 태스크를 빨리 실행하기 위해 그것을 서브 태스크로 나누어 병렬로 실행 함 .• Modularity 시스템 기능을 별도의 프로세스들 또는 쓰레드들로 나누어 시스템을 구성 함 .• Convenience 개별 사용자들이 한 순간에 작업할 많은 태스크를 가짐 .

Page 16: 운영 체제 Sig

프로세스간 통신

• 프로세스 통신• 공유 메모리 (shared memory)• 메시지 전달 (message passing)

Page 17: 운영 체제 Sig

프로세스간 통신

• 메시지 전달 시스템• 동일한 주소 공간을 공유하지 않음 .• 분산환경에서 특히 유용함 .

• 직접 통신 ( 대칭 )• send (P, message) – 프로세스 P 에게 메시지를 전송한다 .• Receive(Q, message) – 프로세스 Q 로부터 메시지를 수신한다 .• 프로세스들 사이에 연결이 자동적 구축 .• 연결은 두 프로세스들 사이에만 연관됨 .• 통신하는 프로세스들의 각 쌍 사이에는 정확하게 하나의 연결이 존재해야 함 .

• 직접 통신 ( 비대칭 )• send (P, message) – 프로세스 P 에게 메시지를 전송한다 .• Receive(Q, message) – 임의의 프로세스로부터 메시지를 수신한다 .

Page 18: 운영 체제 Sig

프로세스간 통신

• 메시지 전달 시스템 단점• 프로세스 정의 즉 이름에 제한됨 .

• 간접 통신• 메시지들을 메일박스 또는 포트로 송신 또는 수신된다 .• send (A, message) – 메시지를 메일박스로 송신한다 .• receive(A, message) – 메시지를 메일 박스 A 로부터 수신한다 .• 연결은 이들 프로세스가 공유 메일 박스를 가질 때만 구축된다 .• 연결은 두 개 이상의 프로세스들과 연관될 수 있다 .• 다수의 프로세스가 서로 연결될 수 있다 .

Page 19: 운영 체제 Sig

프로세스간 통신

• 동기화• 봉쇄형 보내기• 비봉쇄형 보내기• 봉쇄형 받기• 비봉쇄형 받기

• 버퍼링• 무 용량• 유한 용량• 무한 용량

Page 20: 운영 체제 Sig

클라이언트 서버 환경에서 통신

• 소켓• IP 주소와 포트 번호 두 가지를 접합해서 구별함 .

• 클라이언트 – 서버 구조• 요청이 수신되면 서버는 클라이언트 소켓으로부터 연결 요청을 수락함으로써 연결이 완성됨 .

Page 21: 운영 체제 Sig

클라이언트 서버 환경에서 통신

• 원격 프로시저 호출• 컴퓨터 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세세한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술이다 .

• 문제점• 클라이언트와 서버의 자료 표현 방식이 다른 경우 -> XDR 형태로 통일• RPC 경우는 네트워크 오류 때문에 실패할 수 있고 메시지가 중복되어 호출이

여러 번 수행될 수도 있다 .• 클라이언트와 서버간의 통신 문제 .

Page 22: 운영 체제 Sig

클라이언트 서버 환경에서 통신

• 원격 메소드 호출• Java 가 제공하는 RPC 기능 .

• 차이점• RPC 는 절차적 프로그래밍 .• RMI 는 객체 기반 프로그래밍