Scheduling submanagers

Get Started. It's Free
or sign up with your email address
Scheduling submanagers by Mind Map: Scheduling submanagers

1. Job Schedular (high level schedular)

1.1. - Intiate the job

1.2. - Select incoming job

2. Middle level Schedular

2.1. - Used in interactive systems

2.2. - Remove active jobs and swap them back again during overload

2.3. - Reduce degree of multiprogramming

3. Process Schedular (low level schedular)

3.1. - Determine job to get CPU

3.2. - Decide interrupt processing

3.3. - Determine movement of job during execution

3.4. - Recognize job conclusion

4. Control Blocks

4.1. Process Control Block (PCB)

4.1.1. - Process identification

4.1.2. - Process state

4.1.2.1. - Main memory

4.1.2.2. - Resources

4.1.2.3. - Register contents

4.1.3. - Process status

4.2. Thread Control Block (TCB)

4.2.1. - Thread identification

4.2.2. - Thread state

4.2.3. - CPU Info.

4.2.3.1. - Program counter

4.2.3.2. - Register contents

4.2.3.3. - Pointer to process that created this process

5. Process states

5.1. Hold

5.1.1. By job schedular

5.2. Ready

5.2.1. By process Schedular

5.2.2. If interrupt issued

5.2.3. Signal from I/O

5.3. Waiting

5.3.1. By process schedular

5.3.2. I/O request / pages fault

5.4. Running

5.4.1. By process schedular

5.5. Finished

5.5.1. By job schedular

5.5.1.1. If an error occurred

5.5.2. By process schedular

5.5.2.1. If job is successfully completed

6. Thread states

6.1. Creation

6.2. Ready

6.2.1. After the app creates a thread

6.3. Running

6.3.1. If the thread assigned to the CPU

6.4. Waiting

6.4.1. Waiting for an outside event

6.5. Delayed

6.5.1. App delays thread processing by specific amount of time

6.6. Blocked

6.6.1. I/O request issued

6.7. Finished

6.7.1. When thread is terminated

7. CPU SCHDULING PLOICIES

7.1. ----Minimize----

7.1.1. -Response time

7.1.2. -Turnaround time

7.1.3. - Waiting time

7.2. -----Maximize----

7.2.1. - Throughput

7.2.2. - CPU efficiency

7.3. ----Ensure----

7.3.1. Fairness for all jobs

8. CPU Scheduling algorithms

8.1. Non-preemptive

8.1.1. No external interrupt

8.1.1.1. First Come First Served

8.1.1.1.1. Earlier job arrives, earlier served

8.1.1.1.2. Easy to implement and good for batch systems

8.1.1.1.3. Average turnaround time varies

8.1.1.2. Shortest Job Next

8.1.1.2.1. selects the waiting process with the smallest execution time to execute next

8.1.1.2.2. Reduces average waiting time & good for batch systems

8.1.1.2.3. Optimal when all jobs arrive at the same time

8.1.1.2.4. Cannot predict the length of the upcoming CPU request

8.1.1.3. Priority

8.1.1.3.1. Works based on the priority of a process

8.1.1.3.2. Highest priority programs processed first

8.1.1.3.3. First Come First Serverd algorithm is implemented if 2 jobs have the same priority & arrived at the same time

8.2. Preemptive

8.2.1. Interrupts job processing

8.2.1.1. Shortest Remaining Time

8.2.1.1.1. Processor is allocated to the job closest to completion

8.2.1.1.2. Used in batch systems & requires advance CPU time knowledge

8.2.1.1.3. Involved Overhead due to context switching

8.2.1.2. Round Robin

8.2.1.2.1. Each process is cyclically assigned a fixed time

8.2.1.2.2. Every process gets an equal share of CPU

8.2.1.3. Earliest Deadline First

8.2.1.3.1. Process all jobs in order to allow each to run to completion before reaching their respective deadlines

8.2.1.3.2. Impossible to predict job throughput & Overhead

8.2.1.4. Multilevel Queue

8.2.1.4.1. Works in systems with jobs grouped by common characteristic

9. Multi-Level queue cases

9.1. No Movement Between Queues

9.2. Movement Between Queues

9.3. Variable Time Quantum Per Queue

9.4. Aging

10. Interrupt types

10.1. Page interrupt

10.2. Time quantum expiration interrupt

10.3. I/O interrupt

10.4. Internal interrupt

10.5. Illegal arithmetic operation interrupt

10.6. Illegal job instruction interrupt