시작하기. 무료입니다
또는 회원 가입 e메일 주소
CHAPTER 3 저자: Mind Map: CHAPTER 3

1. STACK -CONTAINING TEMPORARY DATA

1.1. FUNCTION PARAMETERS

1.2. RETURN ADDRESSES

1.3. LOCAL VARIABLE

2. DATA SECTION CONTAINING GLOBAL ACTIVITIES

3. HEAP CONTAINING MEMORY DYNAMICALLY ALLOCATED DURING RUNTIME

4. PROCESS CONTROL BLOCK

4.1. ALSO CALLED TASK CONTROL BLOCK

4.2. PROCESS STATE

4.2.1. RUNNING, WAITING, ETC

4.3. PROGRAM COUNTER

4.3.1. LOCATION OF INSTRUCTIONS TO NEXT EXECUTE

4.4. CPU REGISTERS

4.4.1. CONTENTS OF ALL PROCESS-CENTRIC REGISTERS

4.5. CPU SCHEDULING NFORMATION

4.5.1. PRIORITIES, SCHEDULING QUEUE POINTERS

4.6. MEMORY MANAGEMENT INFORMATION

4.6.1. MEMORY ALLOCATED TO THE PROCESS

4.7. ACCOUNTING INFORMATION

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

4.8. I/O STATUS INFORMATION

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

5. SCHEDULER

5.1. SHORT TERM SCHEDULER

5.1.1. CPU SCHEDULER

5.2. LONG TERM SCHEDULER

5.2.1. JOB SCHEDULER

5.3. MEDIUM TERM SCHEDULING

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

6. PROCESS CREATION

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

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

6.3. Resource sharing options

6.3.1. Parent and children share all resources

6.3.2. Children share subset of parent’s resources

6.3.3. Parent and child share no resources

6.4. Execution options

6.4.1. Parent and children execute concurrently

6.4.2. Parent waits until children terminate

6.5. Address Space

6.5.1. Child duplicate of parent

6.5.2. Child has a program loaded into it

6.6. UNIX

6.6.1. fork() system call creates new process

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

7. BUFFERING

7.1. QUEUE IF MESSAGE ATTACHED TO THE LINK

7.2. IMPLEMENTED IN THREE WAYS

7.2.1. ZERO CAPACITY

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

7.2.2. BOUNDED CAPACITY

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

7.2.3. UNBOUNDED CAPACITY

7.2.3.1. INFINITE LENGTH. SENDER NEVER WAITS

8. COMMUNICATION IN CLIENT-SERVER SYSTEMS

8.1. SOCKETS

8.1.1. AN ENDPOINT FOR COMMUNICATION

8.2. REMOTE PROCEDURE CALLS

8.2.1. ABSTRACTS PROCEDURE CALLS BETWEEN PROCESSES IN NETWORKED SYSTEMS

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

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

8.3. PIPES

8.3.1. ACTS AS A CONDUIT ALLOWING TWO PROCESSES TO COMMUNICATE

8.3.2. ORDINARY PIPES

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

8.3.2.2. UNDIRECTIONAL

8.3.3. NAMED PIPES

8.3.3.1. CAN BE ACCESSED WITHOUT A PARENT-CHILD RELATIONSHIP

8.3.3.2. MORE POWERFUL THAN ORDINARY PIPES

8.3.3.3. BIDIRECTIONAL

8.4. REMOTE METHOD INVOCATION(JAVA)

9. BATCH SYSTEM - JOBS

10. TIME SHARED SYSTEMS - USER PROGRAMS OR TASKS

11. PROCESS STATE

11.1. NEW

11.1.1. THE PROCESS IS BEING CREATED

11.2. RUNNING

11.2.1. INSTRUCTIONS ARE BEING EXECUTED

11.3. WAITING

11.3.1. THE PROCESS IS WAITING FOR SOME EVENT TO OCCUR

11.4. READY

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

11.5. TERMINATED

11.5.1. THE PROCESS HAS FINISHED EXECUTION

12. PROCESS SCHEDULING

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

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

12.3. Maintains scheduling queues of processes

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

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

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

12.3.4. Processes migrate among the various queues

13. CONTEXT SWITCH

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

13.2. Context of a process represented in the PCB

14. INTERPROCESS COMMUNICATION

14.1. Processes within a system may be independent or cooperating

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

14.3. Reasons for cooperating processes

14.3.1. Information sharing

14.3.2. Computation speedup

14.3.3. Modularity

14.3.4. Convenience

14.4. Two models of IPC

14.4.1. Shared Memory

14.4.2. Message Passing

14.5. Cooperating Processes

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

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

14.5.3. Advantages

14.5.3.1. Information Sharing

14.5.3.2. Computation Speed-Up

14.5.3.3. Modularity

14.5.3.4. Convenience

14.6. Shared Memory

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

14.6.2. Synchronization

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

14.6.2.1.1. Blocking is considered synchronous

14.6.2.1.2. Non Blocking is considered asynchronous

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