Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Assistant Professor, University of Maryland Baltimore County.

Similar presentations


Presentation on theme: "1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Assistant Professor, University of Maryland Baltimore County."— Presentation transcript:

1 1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Assistant Professor, University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/421/

2 2 Announcements Readings from Silberchatz [3rd chapter] Late Policy

3 3 Processes

4 4 Process Tree generation system process tree

5 5 But what is a process? n An operating system executes a variety of programs: l Batch system – jobs l Time-shared systems – user programs or tasks n Textbook uses the terms job and process almost interchangeably n Process – a program in execution; process execution must progress in sequential fashion n A process includes: l program counter l stack l data section

6 6 Process Memory looks like. virtual Address space why virtual?

7 7 How do we create new processes in userland (fork) Lets see a demo

8 8 What is really happening here

9 9 Fork() primer into virtual memory management Virtual addresses (page table) Physical addresses unallocated

10 10 Fork() Copy-on-write policy Parent process Physical addresses Child process

11 11 Fork() Copy-on-write policy Parent process Physical addresses Child process write to a page

12 12 communication child/parent process (Unnamed pipes) Pipe(fid); // where int fid[2] fid[0] is the read from the pipe and fid[1] is write to the pipe dup2(oldfid, newfid) //creates an alias to oldfid //very handy when you do not want to use file descriptors and use standard ones

13 13 Process States n As a process executes, it changes state l new: The process is being created l running: Instructions are being executed l waiting: The process is waiting for some event to occur l ready: The process is waiting to be assigned to a processor l terminated: The process has finished execution

14 14 Kernel data structure for processes (PCB) Information associated with each process n Process state (running, waiting, ready, terminated) n Program counter (instruction that is executing right now) n CPU registers (eax, ebx, etc) n CPU scheduling information (when would it scheduled) n Memory-management information (pages that are allocated, non- allocated, what do they correspond to) n Accounting information (several things like time created, time run, time waiting etc.) n I/O status information (file descriptors in addition to stdin, stdout, stderr, other files, pipe information, FIFO, shared memory, mmaped file) get a plethora of information in /proc/ /

15 15 Kernel data structure for processes (PCB) Represented by the C structure task_struct pid t pid; /* process identifier */ long state; /* state of the process */ unsigned int time slice /* scheduling information */ struct task struct *parent; /* this process’s parent */ struct list head children; /* this process’s children */ struct files struct *files; /* list of open files */ struct mm struct *mm; /* address space of this pro */

16 16 Process Context Switch n When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process via a context switch. n Context of a process represented in the PCB n Context-switch time is overhead; the system does no useful work while switching l The more complex the OS and the PCB -> longer the context switch n Time dependent on hardware support l Some hardware provides multiple sets of registers per CPU -> multiple contexts loaded at once

17 17 Process Context Switch

18 18 Process Scheduling

19 19 Process Queues

20 20 Lets take a kernel dive to study the process data structure and fork() system call Schedule child process duplicate task_struct

21 21 Next class Process management Inter-process communication (Named pipes, shared memory (shmget, mmap), message passing) Intro to threads

22 22 An in-class discussion (a bit-hack)


Download ppt "1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Assistant Professor, University of Maryland Baltimore County."

Similar presentations


Ads by Google