Unformatted text preview:

ICS 143 Principles of Operating Systems Lectures 3 and 4 Processes and Threads Prof Dmitri V Kalashnikov dvk ics uci edu Slides Prof Nalini Venkatasubramanian Outline Process Concept Process Scheduling Operations on Processes Cooperating Processes Threads Interprocess Communication Process Concept An operating system executes a variety of programs Process a program in execution batch systems jobs time shared systems user programs or tasks job and program used interchangeably process execution proceeds in a sequential fashion A process contains program counter stack and data section Process Program main main A A Program More to a process than just a program Heap Stack A main Process Program is just part of the process state I run emacs Notepad on lectures txt you run it on homework java Same program different processes Less to a process than a program A program can invoke more than one process cc cpp starts up processes to handle different stages of the compilation process cc1 cc2 as and ld Process State A process changes state as it executes new new admitted exit interrupt running ready I O or event completion Scheduler dispatch waiting I O or event wait terminated Process States New The process is being created Running Instructions are being executed Waiting Waiting for some event to occur Ready Waiting to be assigned to a processor Terminated Process has finished execution Process Control Block Contains information associated with each process Process State e g new ready running etc Process Number Process ID Program Counter address of next instruction to be executed CPU registers general purpose registers stack pointer etc CPU scheduling information process priority pointer Memory Management information base limit information Accounting information time limits process number I O Status information list of I O devices allocated Process Control Block Process Scheduling Process PCB moves from queue to queue When does it move Where A scheduling decision Process Scheduling Queues Job Queue set of all processes in the system Ready Queue set of all processes residing in main memory ready and waiting to execute Device Queues set of processes waiting for an I O device Process migration between the various queues Queue Structures typically linked list circular list etc Process Queues Device Queue Ready Queue Enabling Concurrency and Protection Multiplex Only one process PCB active at a time processes Current state of process held in PCB Process needs CPU resources Give out CPU time to different processes Scheduling snapshot of the execution and protection environment Only one process running at a time Give more time to important processes Give pieces of resources to different processes Protection Controlled access to non CPU resources E g Memory Mapping Give each process their own address space Process Control Block Enabling Concurrency Context Switch Task that switches CPU from one process to another process Context switch time is overhead the CPU must save the PCB state of the old process and load the saved PCB state of the new process System does no useful work while switching Overhead sets minimum practical switching time can become a bottleneck Time for context switch is dependent on hardware support 1 1000 microseconds CPU Switch From Process to Process Code executed in kernel above is overhead Overhead sets minimum practical switching time Schedulers Long term scheduler or job scheduler Short term scheduler or CPU scheduler selects which processes should be brought into the ready queue invoked very infrequently seconds minutes may be slow controls the degree of multiprogramming selects which process should execute next and allocates CPU invoked very frequently milliseconds must be very fast Medium Term Scheduler swaps out process temporarily balances load for better throughput Medium Term Time sharing Scheduler Process Profiles I O bound process CPU bound process spends more time in I O short CPU bursts CPU underutilized spends more time doing computations few very long CPU bursts I O underutilized The right job mix Long term scheduler admits jobs to keep load balanced between I O and CPU bound processes Medium term scheduler ensures the right mix by sometimes swapping out jobs and resuming them later Process Creation Processes are created and deleted dynamically Process which creates another process is called a parent process the created process is called a child process Result is a tree of processes e g UNIX processes have dependencies and form a hierarchy Resources required when creating process CPU time files memory I O devices etc UNIX Process Hierarchy What does it take to create a process Must construct new PCB Must set up new page tables for address space More expensive Copy data from parent process Unix fork Inexpensive Semantics of Unix fork are that the child process gets a complete copy of the parent memory and I O state Originally very expensive Much less expensive with copy on write Copy I O state file handles etc Medium expense Process Creation Resource sharing Execution Parent and children share all resources Children share subset of parent s resources prevents many processes from overloading the system Parent and children share no resources Parent and child execute concurrently Parent waits until child has terminated Address Space Child process is duplicate of parent process Child process has a program loaded into it UNIX Process Creation Fork system call creates new processes execve system call is used after a fork to replace the processes memory space with a new program Process Termination Process executes last statement and asks the operating system to delete it exit Output data from child to parent via wait Process resources are deallocated by operating system Parent may terminate execution of child processes Child has exceeded allocated resources Task assigned to child is no longer required Parent is exiting OS does not allow child to continue if parent terminates Cascading termination Threads Processes do not share resources well high context switching overhead Idea Separate concurrency from protection Multithreading a single program made up of a number of different concurrent activities A thread or lightweight process basic unit of CPU utilization it consists of program counter register set and stack space A thread shares the following with peer threads code section data section and OS resources open files signals No protection between threads


View Full Document

UCI ICS 143 - lecture guide 3-4

Download lecture guide 3-4
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view lecture guide 3-4 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view lecture guide 3-4 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?