Get Started. It's Free
or sign up with your email address
Rocket clouds
CHAPTER 3 by Mind Map: CHAPTER 3

1. BATCH SYSTEM - JOBS

2. TIME SHARED SYSTEMS - USER PROGRAMS OR TASKS

3. STACK -CONTAINING TEMPORARY DATA

3.1. FUNCTION PARAMETERS

3.2. RETURN ADDRESSES

3.3. LOCAL VARIABLE

4. DATA SECTION CONTAINING GLOBAL ACTIVITIES

5. HEAP CONTAINING MEMORY DYNAMICALLY ALLOCATED DURING RUNTIME

6. PROCESS STATE

6.1. NEW

6.1.1. THE PROCESS IS BEING CREATED

6.2. RUNNING

6.2.1. INSTRUCTIONS ARE BEING EXECUTED

6.3. WAITING

6.3.1. THE PROCESS IS WAITING FOR SOME EVENT TO OCCUR

6.4. READY

6.4.1. THE PROCESS IS WAITING TO BE ASSIGNED TO BE A PROCESSOR

6.5. TERMINATED

6.5.1. THE PROCESS HAS FINISHED EXECUTION

7. PROCESS CONTROL BLOCK

7.1. ALSO CALLED TASK CONTROL BLOCK

7.2. PROCESS STATE

7.2.1. RUNNING, WAITING, ETC

7.3. PROGRAM COUNTER

7.3.1. LOCATION OF INSTRUCTIONS TO NEXT EXECUTE

7.4. CPU REGISTERS

7.4.1. CONTENTS OF ALL PROCESS-CENTRIC REGISTERS

7.5. CPU SCHEDULING NFORMATION

7.5.1. PRIORITIES, SCHEDULING QUEUE POINTERS

7.6. MEMORY MANAGEMENT INFORMATION

7.6.1. MEMORY ALLOCATED TO THE PROCESS

7.7. ACCOUNTING INFORMATION

7.7.1. CPU USED, CLOCK TIME ELAPSE SINCE START, TIME LIMITS

7.8. I/O STATUS INFORMATION

7.8.1. I/O DEVICES ALLOCATED TO PROCESS, LIST OF OPEN FILES

8. PROCESS SCHEDULING

8.1. Maximize CPU use, quickly switch processes onto CPU for time sharing

8.2. Process scheduler selects among available processes for next execution on CPU

8.3. Maintains scheduling queues of processes

8.3.1. Job queue – set of all processes in the system

8.3.2. Ready queue – set of all processes residing in main memory, ready and waiting to execute

8.3.3. Device queues – set of processes waiting for an I/O device

8.3.4. Processes migrate among the various queues

9. SCHEDULER

9.1. SHORT TERM SCHEDULER

9.1.1. CPU SCHEDULER

9.2. LONG TERM SCHEDULER

9.2.1. JOB SCHEDULER

9.3. MEDIUM TERM SCHEDULING

9.3.1. CAN BE ADDED IF DEGREE OF MULTIPLE PROGRAMMING NEEDS TO DECREASE

10. CONTEXT SWITCH

10.1. 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

10.2. Context of a process represented in the PCB

11. PROCESS CREATION

11.1. Parent process create children processes, which, in turn create other processes, forming a tree of processes

11.2. Generally, process identified and managed via a process identifier

11.3. Resource sharing options

11.3.1. Parent and children share all resources

11.3.2. Children share subset of parent’s resources

11.3.3. Parent and child share no resources

11.4. Execution options

11.4.1. Parent and children execute concurrently

11.4.2. Parent waits until children terminate

11.5. Address Space

11.5.1. Child duplicate of parent

11.5.2. Child has a program loaded into it

11.6. UNIX

11.6.1. fork() system call creates new process

11.6.2. exec () system call used after fork() to replace the process' memory space with a new program

12. INTERPROCESS COMMUNICATION

12.1. Processes within a system may be independent or cooperating

12.2. Cooperating process can affect or be affected by other processes, including sharing data

12.3. Reasons for cooperating processes

12.3.1. Information sharing

12.3.2. Computation speedup

12.3.3. Modularity

12.3.4. Convenience

12.4. Two models of IPC

12.4.1. Shared Memory

12.4.2. Message Passing

12.5. Cooperating Processes

12.5.1. Independent process cannot affect or be affected by the execution of another process

12.5.2. Cooperating process can affect or be affected by the execution of another process

12.5.3. Advantages

12.5.3.1. Information Sharing

12.5.3.2. Computation Speed-Up

12.5.3.3. Modularity

12.5.3.4. Convenience

12.6. Shared Memory

12.6.1. An area of memory shared among the processes that wish to communicate

12.6.2. Synchronization

12.6.2.1. Message passing may be either blocking or non-blocking

12.6.2.1.1. Blocking is considered synchronous

12.6.2.1.2. Non Blocking is considered asynchronous

12.6.2.2. IF BOTH SEND AND RECEIVE ARE BLOCKING, WE HAVE A RENDEZVOUS

13. BUFFERING

13.1. QUEUE IF MESSAGE ATTACHED TO THE LINK

13.2. IMPLEMENTED IN THREE WAYS

13.2.1. ZERO CAPACITY

13.2.1.1. NO MESSAGES ARE QUEUED ON A LINK. SENDER MUST WAIT FOR RECEIVER. (RENDEZVOUS)

13.2.2. BOUNDED CAPACITY

13.2.2.1. FINITE LENGTH OF N MESSAGES. SENDER MUST WAIT IF LINK FULL

13.2.3. UNBOUNDED CAPACITY

13.2.3.1. INFINITE LENGTH. SENDER NEVER WAITS

14. COMMUNICATION IN CLIENT-SERVER SYSTEMS

14.1. SOCKETS

14.1.1. AN ENDPOINT FOR COMMUNICATION

14.2. REMOTE PROCEDURE CALLS

14.2.1. ABSTRACTS PROCEDURE CALLS BETWEEN PROCESSES IN NETWORKED SYSTEMS

14.2.1.1. STUBS - CLIENT SIDE PROXY FOR THE ACTUAL PROCEDURE ON THE SERVER

14.2.2. DATA REPRESENTATION HANDLED VIA EXTERNAL DATA REPRESENTATION (XDL) FORMAT

14.3. PIPES

14.3.1. ACTS AS A CONDUIT ALLOWING TWO PROCESSES TO COMMUNICATE

14.3.2. ORDINARY PIPES

14.3.2.1. CANNOT BE ACCESSED FROM OUTSIDE THE PROCESS THAT CREATED IT.

14.3.2.2. UNDIRECTIONAL

14.3.3. NAMED PIPES

14.3.3.1. CAN BE ACCESSED WITHOUT A PARENT-CHILD RELATIONSHIP

14.3.3.2. MORE POWERFUL THAN ORDINARY PIPES

14.3.3.3. BIDIRECTIONAL

14.4. REMOTE METHOD INVOCATION(JAVA)