1 / 28

Unix 운영체제의 설계

Unix 운영체제의 설계. Chapter 6.1 ~ 6.4 프로세스의 구조. 안재윤 2009. 09 .02. Contents. Ⅰ. 6.1 프로세스 상태와 전이. 6.2 시스템 메모리의 배치. Ⅱ. Ⅲ. 6.3 프로세스의 실행 환경. Ⅳ. 6.4 프로세스의 실행 환경의 보관. Ⅰ. 6.1 프로세스 상태와 전이. 6.2 시스템 메모리의 배치. Ⅱ. Ⅲ. 6.3 프로세스의 실행 환경. Ⅳ. 6.4 프로세스의 실행 환경의 보관. UNIX 운영체제의 구조.

Download Presentation

Unix 운영체제의 설계

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unix 운영체제의 설계 Chapter 6.1 ~ 6.4 프로세스의 구조 안재윤 2009. 09 .02

  2. Contents Ⅰ 6.1 프로세스 상태와 전이 6.2 시스템 메모리의 배치 Ⅱ Ⅲ 6.3 프로세스의 실행 환경 Ⅳ 6.4 프로세스의 실행 환경의 보관

  3. 6.1 프로세스 상태와 전이 6.2 시스템 메모리의 배치 Ⅱ Ⅲ 6.3 프로세스의 실행 환경 Ⅳ 6.4 프로세스의 실행 환경의 보관

  4. UNIX 운영체제의 구조 Block Diagram of the System Kernel User Programs Libraries User Level Kernel Level trap System Call Interface File Subsystem Inter-process communication Process Control Subsystem Buffer cache Scheduler Character Block Memory management Device drivers hardware control hardware Hardware Level

  5. 6.1 프로세스 상태와 전이 프로세스 상태 전이 다이어그램 사용자 수행중 1 각 프로세스 상태 정의 시스템 호출 ,인터럽트 복귀 인터럽트, 인터럽트 복귀 커널수행중 exit 2 9 프로세스가 생성되고 사용자 모드에서 수행되는 과정 7 프리엠프트된 상태 프리엠프트 Zombie 수면 프로세서를 다시 스케쥴 메모리에서 수면 4 3 메모리에서수행 대기 깨움 생성 Swap-out 8 fork Swap-out Swap-in 메모리부족(스웹핑 시스템에서) 6 5 깨움 수면, 스웹됨 스웹된 실행준비

  6. 6.1 프로세스 상태와 전이 프로세스의 상태를 나타내는 커널의2가지 데이터 구조 Kernel Process Table U-area

  7. 6.1 프로세스 상태와 전이 프로세스 테이블 • 프로세스에 관한 가장 기본이 되는 자료1. 상태정보, 프로세스의 크기2. Region 테이블을 가리키는 포인터 정보와 U Area가 가리키는 포인터 3. 사용자의 ID또는 GID, UDI : 프로세스들의 privilege 결정4. 프로세스 번호 (PID) : 프로세스가 ‘생성’상태로 들어갈 때 부여됨 5. 수면상태에 있을 때의 이벤트 식별자6. 스케쥴링 매개변수 : 커널모드&사용자모드 상태로 가는 순서 결정7. Signal 필드8. 여러가지 타이머 : 프로세스 수행시간, 커널 자원의 이용율을 나타냄

  8. 6.1 프로세스 상태와 전이 프로세스의 상태를 나타내는 커널의2가지 데이터 구조 Kernel Process Table U-area

  9. 6.1 프로세스 상태와 전이 U area • 프로세스가 스케쥴러에 의해 CPU를 할당받아 실행될 때만 생성되는 항목1. 프로세스 테이블에 대한 포인터 (해당 U area에 대응되는 프로세스 테이블 엔트리)2. 실제 사용자 ID, 유효 사용자 ID (파일 액세스 권리등 여러 가지 privilege 결정)3. 타이머 필드 (프로세스가 사용자모드와 커널모드에서 실행에 사용한 시간을 기록)4. Signal을 위한 반응 필드들(여러 Signal이 들어왔을 때 대처할 행동지침) 5. 오류필드(실행 중 오류 발생시 관련오류를 이곳에 전달)6. 복귀값 필드(system call의 return value 저장)7. I/O 매개변수 (File 입출력을 위한 기본정보)8. 현재 디렉토리와루트디렉토리(해당 프로세스의 file system 환경)9. 사용자 file descriptortable(Fileaccess를 위해 오픈했을 때 관련정보)10. 한계필드(프로세스의 크기와 쓸 수 있는 File의 크기를 제한)11. 허용모드필드(프로세스가 생성한 File의 모드설정)

  10. 6.1 프로세스 상태와 전이 커널의2가지 데이터 구조 간의 차이점 Kernel Process Table U-area VS 커널이 항상 접근할 필요가 있는 프로세스들의 필드들을 포함 현재 실행 중인 프로세스의 정보 필드 만을 포함

  11. 6.1 프로세스 상태와 전이 Ⅱ 6.2 시스템 메모리의 배치 Ⅲ 6.3 프로세스의 실행 환경 Ⅳ 6.4 프로세스의 실행 환경의 보관

  12. 6.2 시스템 메모리의 배치 UNIX 시스템의 프로세스 구성 Process table Region table Active process Per-process region table u area 주 메모리

  13. 6.2 시스템 메모리의 배치 프로세스와 Region 프로세스당 영역 테이블(가상 주소) b 텍스트 8K 프로세스 A 데이터 16K c 스택 32K a 텍스트 4K e 프로세스 B 데이터 8K d 스택 32K

  14. 6.2 시스템 메모리의 배치 프로세스 당 영역 테이블(Pregion) • 각 영역(Region)의 메모리상의 위치정보를 관리하는 테이블 • 각 프로세스마다 다 하나씩 소유 • 커널이 한 프로세스를 실행시키기 위한 기초 정보 • Region table entry에 대한 포인터와 그 프로세스 내의 Region의 가상 시작 주소 포함(*단, 공유 Region은 각 프로세스에서 다른 가상 주소를 가질 수 있음) • 허용필드 : read-only, read-write, read-execute

  15. 6.2 시스템 메모리의 배치 리전(영역) 테이블(Region Table) • 해당 Region의 내용이 실제 메모리상의 어느 부분에 위치해 있는 가를 나타내는 정보 • 메모리를 관리하기 위한 데이터 구조 • 정보가 들어가있는 위치를 다양화

  16. 6.2 시스템 메모리의 배치 페이지에 기초한 메모리 관리구조 어떤 컴퓨터가 232 바이트의 실제메모리와 1K 바이트의 페이지크기를 가진다면? 16진 주소 584322진수 0101 1000 0100 0011 0010페이지번호, 페이지 offset 01 0110 0001 00 0011 001016진수 표현 161 32 실제 메모리의 주소를 페이지로 지정 논리 페이지 번호실제 페이지 번호 0 177 1 54 2 209 3 17 논리 페이지 번호를 실제 페이지 번호로 mapping

  17. 6.2 시스템 메모리의 배치 가상주소를 실제 주소로 사상 프로세스당 영역 테이블(가상주소) Q? 페이지크기는1K 바이트프로세스가 가상메모리번지68,432를 액세스하기를 원하는 경우 텍스트 8K 페이지 테이블(실제주소) empty 데이터 32K 137K 스택 64K 87K 852K 552K 764K 가상 주소 727K 433K 541K 941K 333K 783K 1096K . . . . . . . 986K 2001K 897K . . . . . . . . . . . . . .

  18. 6.2 시스템 메모리의 배치 사용자 모드에서 커널 모드로의 변환 • 주소변환과정의 속도 향상을 위해 Hardware Register & Cache를 사용 Memory management register triple • register#1 : 실제메모리에서 페이지 테이블의 주소 • register#2 : 그 triple을 통해 결정된 첫번째 가상 주소register#3 : 페이지 테이블 내의 페이지 수와 페이지 액세스 허용과 같은 통제정보를 가짐 • ※ exception 발생어떤 프로세스가 자신의 가상 주소 공간 밖의 메모리 위치 쓰기 방지가 되어 있는 텍스트 Region내의 주소에 write

  19. 6.2 시스템 메모리의 배치 사용자 모드에서 커널 모드로의 변환 페이지 테이블내의 페이지수 페이지 테이블의 주소 가상 주소 커널 레지스터 트리플1 0 커널 레지스터 트리플2 1M 커널 레지스터 트리플3 2M 사용자 레지스터 트리플1 4M 사용자 레지스터 트리플2 사용자 레지스터 트리플3 856K 747K 556K 0K 128K 256K 917K 950K 997K 4K 97K 292K 564K 333K 458K 3K 135K 304K 444K . . . . . . . 632K 17K 139K 279K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . < 프로세스페이지테이블> < 커널 페이지 테이블 >

  20. 6.2 시스템 메모리의 배치 커널에서u area 의 메모리 지도 페이지 테이블내의 페이지수 페이지 테이블의 주소 가상 주소 레지스터 트리플1 레지스터 트리플2 (U Area)레지스터 트리플3 2M 4 프로세스 A에대한u area페이지 테이블 정보를 복사하여 참조 U Area의 페이지 테이블 856K 747K 556K 256K 917K 950K 997K 292K 564K 333K 458K 304K 444K 333K 632K 279K 프로세스 A 프로세스 B 프로세스 C 프로세스 D

  21. 6.1 프로세스 상태와 전이 6.2 시스템 메모리의 배치 Ⅱ Ⅲ 6.3 프로세스의 실행 환경 Ⅳ 6.4 프로세스의 실행 환경의 보관

  22. 6.3 프로세스의 실행환경 프로세스 실행환경

  23. 6.3 프로세스의 실행환경 프로세스 실행환경 User-level context : 가상 주소 공간의 텍스트, 데이터, 사용자 스택, 공유메모리 (swapping, paging으로 인해 정기적으로 메모리 내에 있지 않은 부분포함) Register context : PC(program counter), PS(program state register), Stack Pointer general-purpose register System-level context

  24. 6.3 프로세스의 실행환경 실행환경의 동적 부분 실행환경의 정적 부분 . . . 사용자 수준 실행환경 시스템 수준 실행환경의 정적 부분 프로세스 텍스트 데이터 스택 공유 데이터 층 3의 커널 스택 층 2의 저장된 레지스터 실행환경 층 3 층 2의 커널 스택 층 1의 저장된 레지스터 실행환경 층 2 프로세스 테이블 엔트리 U area 프로세스당 영역 테이블 (per process region table) 층 1의 커널 스택 층 0의 저장된 레지스터 실행환경 층 1 커널실행환경계층 0 (사용자 수준)

  25. 6.1 프로세스 상태와 전이 6.2 시스템 메모리의 배치 Ⅱ Ⅲ 6.3 프로세스의 실행 환경 Ⅳ 6.4 프로세스의 실행 환경의 보관

  26. 6.4 프로세스의 실행환경의 보관 프로세스 실행환경의 보관 ▶ 커널은 새로운 시스템 실행 환경 층을 PUSH 할 때마다 프로세스의 실행 환경을 보관1. 시스템이 인터럽트를 받을 때 2. 프로세스가 System Call을 실행할 때 3. 커널이 실행환경을 교환할 때 4. 중도포기 복귀를 위한 실행환경의 저장 5. 시스템과 사용자 주소 공간 사이의 데이터 복사

  27. 감사합니다

  28. 6.1 프로세스 상태와 전이 프로세스 상태 1 7 프로세스가 커널모드에서 사용자모드로 복귀, but, 커널이preemption, 다른 프로세스를 스케쥴 하기 위해 실행 환경 교환(context switch)을 한 상태 프로세스 사용자모드(user mode) 실행 중 2 프로세스 커널모드(Kernel mode) 실행 중 프로세스가 새로 생성, 전이 상태-> 프로세스 0을 제외한 모든 프로세스의 시작상태(start state) 8 3 실행 중은 아니지만 커널이스케쥴 하자마자 곧 실행할 준비가 된 상태 프로세스가 exit system call을 실행한, zombie 상태 (프로세스의 마지막 상태) -> 부모프로세스가 수집할 exit코드, 시간통계자료를 포함하는 기록을 남김. 9 4 프로세스가 main memory 에서 sleeping 5 프로세스가 main memory로 swap 되어야 하는 상태 6 프로세스 sleeping상태, main memory 내의 다른 프로세스를 위한 여유공간을 위해 보조기억장치로swap된 상태

More Related