Tables CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be...
-
Upload
homer-matthews -
Category
Documents
-
view
214 -
download
1
Transcript of Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be...
Processes
CSCI 4534
Chapter 4
Introduction
• Early computer systems allowed one program to be executed at a time– The program had complete control of the computer– The program had access to all system resources
• Current computer systems allow multiple programs:– To be loaded into memory– To be executed “concurrently”
Introduction
• What do these terms mean:– program in execution?– unit of work in a time-sharing environment?
• Do not use either of these terms unless you can more clearly embellish and define them.
Introduction
• Main concerns of an operating system:– To execute user programs– To execute system programs
Process States
• New
• Ready
• Running
• Waiting
• Terminated
Process Control Blocks
• Each process is represented in the O.S. by a PCB– Process State
– Program Counter
– CPU Register contents
– Information about:
• scheduling priority and queues
• memory limit and base registers, page tables
• accounting of CPU time used, time limits, acct #s
• I/O status of resources allocated and available
Process Scheduling
• Scheduling Queues
– Ready Queue is a linked list• A header may have pointers to head and tail• PCBs are linked together as in Figure 4.4
– I/O device queues
• Queueing Diagrams– See Figure 4.5
Process Scheduling
• Schedulers– Long-term: to load into memory
• Determines degree of multiprogramming
• Mix of CPU-bound and I/O-bound processes
– Short-term: allocates CPU to a process• How much overhead do schedulers
contribute?– Context switching
Process Scheduling
• Adding a medium-term scheduler– To reduce the degree of
multiprogramming
– To keep down contention for CPU
– Remove process(es) from memory and swap them back in later
Context Switching
• CPU is switched to a different process
– save state of current process
– load saved state of another process• as in Figure 4.3• this time is pure overhead; no useful work
gets done• speed ranges from 1 to 1000 microseconds
Context Switching
• Hardware support for context switching– Processors may provide multiple sets of
registers; change a pointer to current set– Or register data is copied between
registers and memory
• Threads are used to avoid performance problems of context switching
Process Creation
• New child processes get their own resources or they share with the parent
• The parent can either:– Execute concurrently with children
– Wait until some or all children have terminated using wait( ) system call
Process Creation
• Parent processes can create child processes– Using a fork( ) system call: copy of
parent
– Or by specifying the new process
• Parent must know the child’s process id
Process Termination
• A process uses the exit( ) system call to ask the O.S. to terminate it
• Resources are deallocated: memory, files, buffers
• A parent can ask to have a process killed by using the abort( ) system call
Cooperating Processes
• Reasons for processes which can affect each other to cooperate:– to share information
– to execute faster
– to make more modular
• There must be ways then, for processes to communicate --> IPC
Cooperating Processes
• Producer-Consumer– Unbounded buffer
• No limit on buffer size• Producer can always produce
– Bounded buffer• Consumer waits if buffer is empty• Producer waits if buffer is full
– See code pp. 108 -109
Interprocess Communication
• Needs two operations:– send( )– receive( )
• Needs a communication link– How are links established?– Are links associated with >2 processes?– What is capacity of link? – Unidirectional or bidirectional?
Interprocess Communication
• Buffering: what is the capacity of the link?– Zero: no messages waiting– Bounded: there is a queue with finite length– Unbounded: any number of messages can wait;
sender is never delayed
• Should sent messages be acknowledged?
• What about lost messages?
Client-Server Communication
• Sockets– A pair of processes communicating over a
network uses sockets– A socket consists of an IP address and a port
number– Typically a server waits and listens for an
incoming request at a specific port– A connection is made when the server accepts a
connection request
Client-Server Communication
• Some ports are well-known and under 1024– ftp (port 21)– telnet (port 23)– http (port 80)
• Other ports are assigned when a client process requests a connection– The host assigns it a port of a number > 1024– The connection consists of the pair of sockets:
(serverIP:port) and (hostIP:port) on the host– See Figures 4.9, 4.10, and 4.11
Client-Server Communication
• Remote Procedure Calls– Used for message-based communication between
processes executing on separate systems
– A port is a number which is used for addressing messages
– Remote systems can obtain information by sending an RPC to that port number
– See Figure 4.12
– RMI is the Java version of an RPC