Term
| What components comprise a process in RAM |
|
Definition
Process stack Data Section Heap Text section |
|
|
Term
| What information is contained in a process control block (PCB)? |
|
Definition
Process state Program counter CPU registers CPU scheduling Memory management information Accounting information I/O status information |
|
|
Term
| Define degree of multiprogramming and how is it controlled in an operating system? |
|
Definition
| Degree of multiprogramming is defined by the number of programs loaded into RAM in the system. Generally, as we increase the degree of multiprogramming, CPU utilization increases. Degree of multiprogramming is controlled by a long-term CPU scheduler. |
|
|
Term
| In what address space are PCB's stored? |
|
Definition
| RAM's kernel address space |
|
|
Term
| In a context switch the last thing to do is restore the next processes program counter. Why? |
|
Definition
| Because when you restore the program counter, it will begin running code again. |
|
|
Term
| Why would you have one process wait (e.g. block) until another has achieved some state? |
|
Definition
|
|
Term
|
Definition
| code (text), global data, open files |
|
|
Term
| Who does a thread share with |
|
Definition
| With other threads within a single Heavy-Weight Process, but not with other Heavy-Weight Process’s |
|
|
Term
| What components does each thread have for itself? |
|
Definition
| program counter, register set, stack pointer, thread ID |
|
|
Term
| What are the benefits of threads |
|
Definition
• User responsiveness • Resource sharing: economy • Speed • Utilizing hardware parallelism |
|
|
Term
| What are the drawbacks of threads? |
|
Definition
- Synchronization can be difficult and cause bugs - Lack of Independence causing no memory protection from each other |
|
|
Term
| Why would you want your thread to have separate stacks? |
|
Definition
| if two threads are using the same stack, they may corrupt these activation records, or at best use each others activation records. |
|
|
Term
| What are the two ways to implement threads? |
|
Definition
-User level support -Kernel level support |
|
|
Term
| What are the different threading models? |
|
Definition
- Many-to-one (Many user threads to one kernel thread) - One-to-one (One user thread per kernel thread) - Many-to-many (Many user threads to many kernel threads) |
|
|
Term
| What is a cancellation point? |
|
Definition
| Places in a thread where it can be "safely" cancelled |
|
|
Term
| What are some examples of multi-threaded applications? |
|
Definition
| RPC file server, Database server |
|
|
Term
| What can occur if a process is in the new state? |
|
Definition
| It can be admitted into a ready state |
|
|
Term
| What can occur if a process is in the ready state? |
|
Definition
| It can get scheduled and dispatched into a running state. |
|
|
Term
| What can occur if a process is in the running state. |
|
Definition
| It can either be interrupted and put back into a ready state, have I/O or event wait and go to the waiting state, or exit to the terminated state. |
|
|
Term
| What can occur if a process is in the waiting state? |
|
Definition
| It can go back to a ready state either because of I/O or event completion |
|
|
Term
| When does/can scheduling occur and which cases are examples of Non-preemptive scheduling and which of Preemptive scheduling? |
|
Definition
1. When a process terminates 2. When a process switches from a running to waiting state 3. When a process switches from a running to ready state 4. When a process switches from a waiting state to a ready state
1 and 2 are non-preemptive and everything is or can be preemptive |
|
|
Term
|
Definition
| Percentage of time that CPU is busy (and not idle), over some period of time |
|
|
Term
|
Definition
| Number of jobs completed per unit time |
|
|
Term
|
Definition
Time interval from submission of a process until completion of the process |
|
|
Term
|
Definition
| Sum of the time periods spent in the ready queue |
|
|
Term
|
Definition
| – Time from submission until first output/input – Approximate by time from submission until first access to CPU |
|
|
Term
| what is the algorithm of predicting CPU burst? |
|
Definition
| τn+1 = α * tn + (1 - α) * τn |
|
|
Term
| What can the priorities for scheduling be set as? |
|
Definition
| - Internal - External - Static - Dynamic |
|
|
Term
| What is starvation and how is it solved? |
|
Definition
| it is the indefinite waiting for CPU access and it can be solved using aging |
|
|
Term
|
Definition
| Gradually increasing the priority of a process that waits for a long time |
|
|
Term
| Which scheduling algorithms can be preemptive? |
|
Definition
| Round robin, shortest job first can be either and priority can be either |
|
|
Term
| Which scheduling algorithm has the best average wait time |
|
Definition
|
|
Term
| What are the different types of ready queues and describe them? |
|
Definition
- Local: dispatch to a specific processor - Global: dispatch to any processor ("load sharing") |
|
|
Term
| What should the runnable interface be implemented by? |
|
Definition
| any class whose instances are intended to be executed by a thread. The class must define a method with no arguments called run |
|
|
Term
| What happens when a yield is called? |
|
Definition
| the thread gives up CPU for other threads ready to run |
|
|
Term
| How can you pass data from a parent thread to a child thread? |
|
Definition
| pass an object instance to the child thread constructor, and retain that object instance in a data member. |
|
|
Term
|
Definition
| When a process has to wait for another process before it can continue to execute |
|
|
Term
| What is an instance-based synchronization? |
|
Definition
| each separate instance of an object, when used with its corresponding synchronized methods, have separate locks |
|
|
Term
| In monitors, what typically happens when signal (or notify) is called and no process is waiting? |
|
Definition
| If the notify() method is called when no other thread is waiting, notify() simply returns and the notification is lost. A thread that later executes the wait() method has to wait for another notification to occur |
|
|
Term
| what is a primary task of an operating system? |
|
Definition
| to execute and manage processes |
|
|
Term
| When a process "looses" the CPU, what needs to be saved so that the process can be resumed later? |
|
Definition
| CPU registers, memory management info |
|
|
Term
| What needs to happen in order for a context switch to occur? |
|
Definition
| Save context of current process, load the context of the next process |
|
|
Term
| How are PCB's typically organized? |
|
Definition
| In a collection of queues |
|
|
Term
| What happens when a parent dies? |
|
Definition
| Children can die (cascading termination) or children can remain executing |
|
|
Term
| What happens when a child dies? |
|
Definition
|
|
Term
| What is the Rendezvous style of blocking message passing? |
|
Definition
- Send blocks until receiver executes receive - receive blocks until there is a message |
|
|
Term
| What is the fixed-length queue style of blocking message passing? |
|
Definition
| sender blocks if queue is full |
|
|
Term
| What is the Non-blocking style of message passing |
|
Definition
- send buffers message, so receiver will pick it up later - receiver gets a message or an indication of no message |
|
|