3276b353085ac8921811e6f0de4c43b5.ppt
- Количество слайдов: 118
2. Processes 作者 : 陳鍾誠 單位 : 金門技術學院資管系 Email: ccc@kmit. edu. tw URL : http: //ccc. kmit. edu. tw 日期 : 2018/3/15
2. 1. Introduction to Processes l l l l 2. 1. 1. The Process Model 2. 1. 2. Process Creation 2. 1. 3. Process Termination 2. 1. 4. Process Hierarchies 2. 1. 5. Process States 2. 1. 6. Implementation of Processes 2. 1. 7. Threads 2 陳鍾誠 - 2018/3/15
2. 1 The Process Model 3 陳鍾誠 - 2018/3/15
2. 1. 2 Process Creation 4 陳鍾誠 - 2018/3/15
2. 1. 3 Process Termination 5 陳鍾誠 - 2018/3/15
2. 1. 4 Process Hierarchy 6 陳鍾誠 - 2018/3/15
2. 1. 5 Process States 7 陳鍾誠 - 2018/3/15
2. 1. 6 Implementation of Processes 8 陳鍾誠 - 2018/3/15
9 陳鍾誠 - 2018/3/15
2. 1. 7 Threads 10 陳鍾誠 - 2018/3/15
11 陳鍾誠 - 2018/3/15
12 陳鍾誠 - 2018/3/15
2. 2. Interprocess Communication l l l l 2. 2. 1. Race Conditions 2. 2. 2. Critical Sections 2. 2. 3. Mutual Exclusion with Busy Waiting 2. 2. 4. Sleep and Wakeup 2. 2. 5. Semaphores 2. 2. 6. Mutexes 2. 2. 7. Monitors 2. 2. 8. Message Passing 13 陳鍾誠 - 2018/3/15
2. 2. 1 Race Conditions 14 陳鍾誠 - 2018/3/15
2. 2. 2 Critical Section 15 陳鍾誠 - 2018/3/15
2. 2. 3 Mutual Exclusion with Busy Waiting l l l Disabling Interrupts Lock Variables Strict Alternation Peterson’s Solution The TSL instruction 16 陳鍾誠 - 2018/3/15
Disabling Interrupts 17 陳鍾誠 - 2018/3/15
Lock Variables 18 陳鍾誠 - 2018/3/15
Strict Alternation 19 陳鍾誠 - 2018/3/15
Peterson’s Solution 20 陳鍾誠 - 2018/3/15
The TSL instruction 21 陳鍾誠 - 2018/3/15
2. 2. 4 Sleep and Wakeup 22 陳鍾誠 - 2018/3/15
The Producer-Consumer Problem 23 陳鍾誠 - 2018/3/15
2. 2. 5 Semaphores 24 陳鍾誠 - 2018/3/15
Solving the Producer. Consumer Problem using Semaphores 25 陳鍾誠 - 2018/3/15
2. 2. 6. Mutexes 26 陳鍾誠 - 2018/3/15
2. 2. 7. Monitors 27 陳鍾誠 - 2018/3/15
Solving the Producer. Consumer Problem using Monitor (1) 28 陳鍾誠 - 2018/3/15
Solving the Producer. Consumer Problem using Monitor (2) 29 陳鍾誠 - 2018/3/15
2. 2. 8. Message Passing 30 陳鍾誠 - 2018/3/15
2. 3. Classical IPC Problems l l 2. 3. 1. The Dining Philosophers Problem 2. 3. 2. The Readers and Writers Problem 31 陳鍾誠 - 2018/3/15
2. 3. 1. The Dining Philosophers Problem (DPP) 32 陳鍾誠 - 2018/3/15
A nonsolution to DPP 33 陳鍾誠 - 2018/3/15
A solution to DPP (1) 34 陳鍾誠 - 2018/3/15
A solution to DPP (2) 35 陳鍾誠 - 2018/3/15
2. 3. 2. The Readers and Writers Problem 36 陳鍾誠 - 2018/3/15
2. 4. Scheduling l l l 2. 4. 1. Introduction to Scheduling 2. 4. 2. Scheduling in Batch Systems 2. 4. 3. Scheduling in Interactive Systems 2. 4. 4. Scheduling in Real-Time Systems 2. 4. 5. Policy versus Mechanism 2. 4. 6. Thread Scheduling 37 陳鍾誠 - 2018/3/15
2. 4. 1. Introduction to Scheduling l l Process Behavior When to Schedule Categories of Scheduling Algorithms Scheduling Algorithm Goals 38 陳鍾誠 - 2018/3/15
Process Behavior 39 陳鍾誠 - 2018/3/15
Scheduling Algorithm Goals 40 陳鍾誠 - 2018/3/15
2. 4. 2. Scheduling in Batch Systems l l First-Come First Served Shortest Job First Shortest Remaining Time Next Three-Level Scheduling 41 陳鍾誠 - 2018/3/15
First-Come First Served 42 陳鍾誠 - 2018/3/15
Shortest Job First 43 陳鍾誠 - 2018/3/15
Shortest Remaining Time Next 44 陳鍾誠 - 2018/3/15
Three-Level Scheduling 45 陳鍾誠 - 2018/3/15
2. 4. 3. Scheduling in Interactive Systems l l l l Round-Robin Scheduling Priority Scheduling Multiple Queues Shortest Process Next Guaranteed Scheduling Lottery Scheduling Fair-Share Scheduling 46 陳鍾誠 - 2018/3/15
Round-Robin Scheduling 47 陳鍾誠 - 2018/3/15
Priority Scheduling 48 陳鍾誠 - 2018/3/15
Multiple Queues 49 陳鍾誠 - 2018/3/15
Shortest Process Next 50 陳鍾誠 - 2018/3/15
Guaranteed Scheduling 51 陳鍾誠 - 2018/3/15
Lottery Scheduling 52 陳鍾誠 - 2018/3/15
Fair-Share Scheduling 53 陳鍾誠 - 2018/3/15
2. 4. 4. Scheduling in Real. Time Systems 54 陳鍾誠 - 2018/3/15
2. 4. 5. Policy versus Mechanism 55 陳鍾誠 - 2018/3/15
2. 4. 6. Thread Scheduling 56 陳鍾誠 - 2018/3/15
2. 5. Overview of Processes in MINIX 3 l l 2. 5. 1. The Internal Structure of MINIX 3 2. 5. 2. Process Management in MINIX 3 2. 5. 3. Interprocess Communication in MINIX 3 2. 5. 4. Process Scheduling in MINIX 3 57 陳鍾誠 - 2018/3/15
2. 5. 1. The Internal Structure of MINIX 3 58 陳鍾誠 - 2018/3/15
2. 5. 2. Process Management in MINIX 3 59 陳鍾誠 - 2018/3/15
Minix Startup 60 陳鍾誠 - 2018/3/15
Some Important MINIX 3 system components 61 陳鍾誠 - 2018/3/15
Initialization of the Process Tree 62 陳鍾誠 - 2018/3/15
2. 5. 3. Interprocess Communication in MINIX 3 63 陳鍾誠 - 2018/3/15
2. 5. 4. Process Scheduling in MINIX 3 l Round-Robin 64 陳鍾誠 - 2018/3/15
2. 6. Implementation of Processes in MINIX 3 l l l 2. 6. 1. Organization of the MINIX 3 Source Code 2. 6. 2. Compiling and Running MINIX 3 2. 6. 3. The Common Header Files 2. 6. 4. The MINIX 3 Header Files 2. 6. 5. Process Data Structures and Header Files 2. 6. 6. Bootstrapping MINIX 3 2. 6. 7. System Initialization 2. 6. 8. Interrupt Handling in MINIX 2. 6. 9. Interprocess Communication in MINIX 3 2. 6. 10. Scheduling in MINIX 3 2. 6. 11. Hardware-Dependent Kernel Support 2. 6. 12. Utilities and the Kernel Library 65 陳鍾誠 - 2018/3/15
2. 6. 1. Organization of the MINIX 3 Source Code 66 陳鍾誠 - 2018/3/15
MINIX 的原始檔列表 (1) l boot/ l l l kernel/ l l l l l system/ : 啟動相關的程式碼 (addaout. c, boot. c/h, bootlock. s, boothead. s, bootimage. c, doshead. s, image. h, installboot. c, jumpboot. s, masterboot. s, mkfhead. s, mkfile. c, rawfs. c/h : 行程相關的程式碼 (clock. c, config. c/h, debug. c/h, exception. c, glo. h, i 8259. c, ipc. h, kernel. h, klib 88. s, klib 386. s, klib. s, main. c, mpx 88. s, mpx 386. s, mpx. s, priv. h, proc. c/h, protect. c/h, proto. h, sconst. h, start. c, system. c, table. c, type. h, utility. c, : do_xx 的程式, (do_abort. c, do_copy. c, dodevio. c, do_endksig. c, do_exec. c, do_exit. c, do_fork. c, do_getinfo. c, do_getksig. c, do_int 86. c, do_iopenable. c, do_irqctl. c, dodo_exec. c, do_fork. c, do_kill. c, do_memset. c, do_newmap. c, do_nice. c, do_privctl. c, do_sdevio. c, do_segctl. c, do_setalarm. c, do_sigreturn. c, do_sigend. c, do_times. c, do_trace. c, do_umap. c, do_unused. c, do_vcopy. c, do_vdevio. c) 67 陳鍾誠 - 2018/3/15
MINIX 的原始檔列表 (2) l l l l servers/ : 訊息傳遞相關的程式碼 (No file) ds/ : Data Store Server, (main. c, store. c/h, glo. h, inc. h, proto. h) fs/ : File System, (buf. h, cache. c, cache 2. c, cdprobe. c, device. c, dmap. c, file. h, filedes. c, fproc. h, fs. h, glo. h, inode. c/h, link. c, lock. c/h, main. c, misc. c, mount. c, open. c, param. h, path. c, pipe. c, protect. c, proto. h, read. c, select. c/h, stadir. c, super. c/h, table. c, timers. c, type. h, utility. c, write. c) inet/ : Networking, (buf. c, clock. c, inet_config. c, mnx_eth. c, mq. c, qp. c, sha 2. c, sr. c, stacktrace. c, version. c) generic/: 網路通用程式, *arp. c/h, assert. h, buf. h, clock. h, eth. c/h, eth_int. h, event. c/h, icmp_lib. h, io. c/h, ip_eth. c/h, ip_int. h, ip_ioctl. c/h, ip_lib. c, ip_ps. c, ip_read. c, ip_write. c, ipr. c/h, psip. c/h, rand 256. c/h, sr. h, tcp. c/h, tcp_int. h, tcp_lib. c, tcp_recv. c, tcp_send. c, type. h, udp. c, udp. h, udp_int. h) minix 3/ : 只有 queryparam. c, . h 68 陳鍾誠 - 2018/3/15
MINIX 的原始檔列表 (3) l l init/ is/ l l pm/ l l rs/ sm/ : 只有 init. c , 是所有 Process 的 Father Process. : information server, 除錯資訊的 dump. (dump. c, dmp_ds. c, dmp_fs. c, dmp_kernel. c, dmp_pm. c, dmp_rs. c, glo. h, inc. h, is. h, main. c, proto. h) : Process Management, 包含 (alloc. c, break. c, const. h, exec. c, forkexit. c, getset. c, glo. h, main. c, misc. c, mproc. h, param. h, proto. h, signal. c, table. c, timers. c, trace. c, type. h, utility. c : Reincarnation(輪迴轉世) Server, (inc. h, main. c, manager. c/h, proto. h, service. c) : System Process Manager, (沒有 *. c 只有一個 makefile) 69 陳鍾誠 - 2018/3/15
MINIX 的原始檔列表 (4) l l l l l l drivers/ : IO 驅動程式 (drivers. h) at_wini/ : driver for the IBM-AT winchester controller. bios_wini/: hard disk driver that uses the ROM BIOS. cmos/ : access the CMOS chip to get or set the system time. dp 8390/ : Ethernet device driver for NS dp 8390 based ethernet cards. (dp 8390. c, ne 2000. c, rtl 9029. c, wdeth. c) dpeth/ : Ethernet device driver for 3 Com Etherlink (3 c 501) boards, 包含 3 c 501. c, 3 c 503. c, 3 c 509. c, 8390. c, devio. c, dp. c, netbuff. c, wd. c, floppy/ : Floppy Disk Driver, 包含 floppy. c fxp/ : Ethernet device driver for Intel 82557, 82558, 82559, 82550, and 82562 fast ethernet controllers. 包含 : fxp. c (與裝置相關), mii. c (與裝置無關) lance/ : Ethernet driver for AMD LANCE based ethernet cards. (lance. c) libdriver/: Device Independent Device Driver Interface. (driver. c, drvlib. c) libpci/ : PCI 插槽 (pci. c, pci_table. c, pci_amd. h, pci_intel. h, pci_via. h, pci. h) log/ : system log device (log. c, diag. c, kput. c) memory/ : (memory. c) printer/: printer driver. It is a fairly simple driver, supporting only one printer. Characters that are written to the driver are written to the printer without any changes at all. random/ : random number generator, (main. c, random. c, sha 2. c) rescue/ : rescue device driver (rescue. c) 70 陳鍾誠 - 2018/3/15 rtl 8138/ : device driver for Realtek rtl 8139 based ethernet cards.
MINIX 的原始檔列表 (5) l l l l tools/ : 具軟體 (Makefile, mkboot, tell_config) include/ : *. h 的表頭檔 (a. out. h, alloca. h, ansi. h, assert. h, configfile. h, ctype. h, courses. h, dirent. h, env. h, errno. h, fcntl. h, float. h, grp. h, inttype. h, libgen. h, libutil. h, limits. h, locale. h, mathconst. h, netdb. h, pwd. h, regexp. h, setjmp. h, sgtty. h, signal. h, stdarg. h, stddef. h, stdint. h, stdio. h, stdlib. h, string. h, tar. h, termcap. h, termios. h, timers. h, tools. h, ttyent. h, unistd. h, utime. h, utmp. h) arpa/ : inet. h ibm/ : bios. h, cmos. h, cpu. h, diskparm. h, int 86. h, interrupt. h, memory. h, partition. h, portio. h, ports. h minix/ : bitmap. h, callnr. h, cdrom. h, config. h, const. h, devio. h, dl_eth. h, dmap. h, fslib. h, ioctl. h, ipc. h, jmp_buf. h, keymap. h, minlib. h, partition. h, paths. h, sound. h, swap. h, sys_config. h, syslib. h, sysutil. h, type. h, u 64. h, 71 陳鍾誠 - 2018/3/15
MINIX 的原始檔列表 (6) l l l l l net/ : hton. h, if. h, ioctl. h, netlib. h gen/ : arp_io. h, dhcp. h, eth_hdr. h, eth_io. h, ether. h, icmp_hdr. h, if_ether. h, inet. h, ip_hdr. h, ip_io. h, nameser. h, netdb. h, one. Csum. h, psip_hdr. h, psip_io. h, resolv. h, rip. h, route. h, socket. h, tcp_hdr. h, tcp_io. h, udp_hdr. h, udp_io. h, vjhc. h netinet/ : in. h, tcp. h sys/ : asynchio. h, dir. y, file. h, ioc_cmos. h, ioc_disk. h, ioc_file. h, ioc_memory. h, ioc_scsi. h, ioc_sound. h, ioc_tape. h, ioc_tty. h, ioctl. h, mtio. h, param. h, ptrace. h, resource. h, select. h, sigcontext. h, socket. h, statfs. h, svrctl. h, time. h, types. h, uio. h, un. h, utsname. h, wait. h 72 陳鍾誠 - 2018/3/15
2. 6. 2. Compiling and Running MINIX 3 l Rebuild MINIX Operating System l l l Make Bootable image l l cd /usr/src/tools/ make su make clean time make image Make bootable floppy l make fdboot l type fd 0 when you are asked to complete the path. 73 陳鍾誠 - 2018/3/15
Memory Layout 74 陳鍾誠 - 2018/3/15
2. 6. 3. The Common Header Files 0~ 6200 行都是 Header File 不太重要,可先忽略,看內容 時再回頭參考 75 陳鍾誠 - 2018/3/15
Data Type Size 76 陳鍾誠 - 2018/3/15
2. 6. 4. The MINIX 3 Header Files 77 陳鍾誠 - 2018/3/15
Seven Message Type used in MINIX 78 陳鍾誠 - 2018/3/15
2. 6. 5. Process Data Structures and Header Files l Discriptor table l Define how system resources are used and prevent process from accessing memory assigend to other processes. l GDT : Global Descriptor Table l LDT : Local Descriptor Table l IDT : Interrupt Descriptor Table 79 陳鍾誠 - 2018/3/15
Privilege Table 80 陳鍾誠 - 2018/3/15
2. 6. 6. Bootstrapping MINIX 3 l Boot Process : SEC 2. 6, page 155. l When the system is started, the hardware (actually, a program in ROM) reads the first sector of the boot disk, copies it to a fixed location in memory, and executes the code found there. l On an unpartitioned MINIX 3 diskette, the first sector is a bootblock which loads the boot program, as in Fig. 2 -36(a). l Hard disk are partitioned, and the program on the first sector (called master boot on MINIX sytems) first relocates itself to a different memory region, the reads the partition table, loaded with it from the first sector. Then it load and executes the first sector of the active partition, as shown in Fig. 2 -36(b). l Boot block : The first sector (512 byte). 81 陳鍾誠 - 2018/3/15
Disk Structure for Bootstrapping 82 陳鍾誠 - 2018/3/15
Making boot program l The MINIX 3 boot sector is modified at the time it is written to the disk by a special program called installboot which writes the boot sector and patches into it the disk address of a file named boot on its partition or subpartition l In MINIX 3, the standard location for the boot program is in a directory of the same name, that is, /boot. But it could be anywhere – the patching of the boot sector just mentioned locates the disk sectors from which it is to be loaded. This is necessary because previous to loading boot there is no way to use directory and filenames to find a file. 83 陳鍾誠 - 2018/3/15
Boot Parameters 84 陳鍾誠 - 2018/3/15
Reference for MINIX booter l Boot Sequence Overview l http: //www. os-forum. com/minix/bootsequence. php 85 陳鍾誠 - 2018/3/15
2. 6. 7. System Initialization 86 陳鍾誠 - 2018/3/15
8088 or 80386 ? 87 陳鍾誠 - 2018/3/15
2. 6. 8. Interrupt Handling in MINIX 88 陳鍾誠 - 2018/3/15
Interrupt V. S. System Call 89 陳鍾誠 - 2018/3/15
8259 Interrupt Controller 90 陳鍾誠 - 2018/3/15
System Startup - Restart 91 陳鍾誠 - 2018/3/15
2. 6. 9. Interprocess Communication in MINIX 3 92 陳鍾誠 - 2018/3/15
93 陳鍾誠 - 2018/3/15
2. 6. 10. Scheduling in MINIX 3 94 陳鍾誠 - 2018/3/15
Process Queue 95 陳鍾誠 - 2018/3/15
2. 6. 11. Hardware-Dependent Kernel Support 96 陳鍾誠 - 2018/3/15
2. 6. 12. Utilities and the Kernel Library 97 陳鍾誠 - 2018/3/15
The format of an Intel Segment Descriptor 98 陳鍾誠 - 2018/3/15
2. 7. The System Task in MINIX 3 l l l 2. 7. 1. Overview of the System Task 2. 7. 2. Implementation of the System Task 2. 7. 3. Implementation of the System Library 99 陳鍾誠 - 2018/3/15
2. 7. 1. Overview of the System Task 100 陳鍾誠 - 2018/3/15
Message types accepted by the system task. (1) 101 陳鍾誠 - 2018/3/15
Message types accepted by the system task. (2) 102 陳鍾誠 - 2018/3/15
2. 7. 2. Implementation of the System Task 103 陳鍾誠 - 2018/3/15
2. 7. 3. Implementation of the System Library 104 陳鍾誠 - 2018/3/15
How many message passing per read required ? 105 陳鍾誠 - 2018/3/15
2. 8. The Clock Task in MINIX 3 l l 2. 8. 1. Clock Hardware 2. 8. 2. Clock Software 2. 8. 3. Overview of the Clock Driver in MINIX 3 2. 8. 4. Implementation of the Clock Driver in MINIX 3 106 陳鍾誠 - 2018/3/15
2. 8. 1. Clock Hardware 107 陳鍾誠 - 2018/3/15
108 陳鍾誠 - 2018/3/15
2. 8. 2. Clock Software 109 陳鍾誠 - 2018/3/15
110 陳鍾誠 - 2018/3/15
111 陳鍾誠 - 2018/3/15
2. 8. 3. Overview of the Clock Driver in MINIX 3 l l l The Clock Task The Clock Interrupt Handler Watchdog Timers Millisecond Timing Summary of Clock Services 112 陳鍾誠 - 2018/3/15
The Clock Task 113 陳鍾誠 - 2018/3/15
The Clock Interrupt Handler 114 陳鍾誠 - 2018/3/15
Watchdog Timers 115 陳鍾誠 - 2018/3/15
Millisecond Timing 116 陳鍾誠 - 2018/3/15
Summary of Clock Services 117 陳鍾誠 - 2018/3/15
2. 8. 4. Implementation of the Clock Driver in MINIX 3 118 陳鍾誠 - 2018/3/15
3276b353085ac8921811e6f0de4c43b5.ppt