Operating Systems Processes Ch 4 1 Processes F
- Slides: 14
Operating Systems Processes (Ch 4. 1)
Processes F “A program in execution” F Modern computers allow several at once – “pseudoparallelism” A Program Counter B C A B C Conceptual View A B C Time
Processes F “A program in execution” main() {. . . } A() { … } Heap A Stack main • “more” than a program: ls, tcsh • “less” than a program: gcc blah. c (cpp, cc 1, cc 2, ln …) F “A sequential stream of execution in it’s own address space”
Process States F Consider: cat /etc/passwd | grep claypool Exit New Running Dispatch I/O Wait Interrupt Ready I/O Complete Waiting (Hey, you, show states in top!)
Design Technique: State Machines F Process states F Move from state to state based on events – Reactive system F Can be mechanically converted into a program F Other example: – string parsing, pre-processor
Unix Process Creation F System call: fork() – creates (nearly) identical copy of process – return value different for child/parent F System call: exec() – over-write with new process memory F Shell – uses fork() and exec() – simple! F (Hey, you, show demos!)
Process Scheduler cat ls . . . disk vid Scheduler F All services are processes F Small scheduler handles interrupts, stopping and starting processes
Process Control Block F Each process has a PCB – state – program counter – registers – memory management –… F OS keeps a table of PCB’s, one per process F (Hey! Simple Operating System, “system. h”)
Question F Usually the PCB is in OS memory only. F Assume we put the PCB into a processes address space. F What problems might this cause?
Interrupt Handling F Stores program counter (hardware) F Loads new program counter (hardware) – jump to interrupt service procedure F Save PCB information (assembly) F Set up new stack (assembly) F Set “waiting” process to “ready” (C) F Re-schedule (probably awakened process) (C) F If new process, called a context-switch
Context Switch F Pure overhead F So … fast, fast – typically 1 to 1000 microseconds F Sometimes F How special hardware to speed up to decide when to switch contexts to another process is process scheduling
Processes in Linux F PCB is in struct task_struct – states: RUNNING, INTERRUPTIBLE, UNINTERRUPTIBLE – priority: when it runs – counter: how long it runs F Environment inherited from parent F NR_TASKS max, 2048 – 1/2 is max per user
Processes in NT F States: ready, standby (first in line), running, waiting, transition, terminated F priority - when it runs F Processes are composed of threads – (revisit threads after scheduling)
True or False F Unix is a “simple structure” OS F Micro Kernels are faster than other OS structures F Virtual Machines are faster than other OS structures
- Concurrent processes are processes that
- What is os
- Evolution of operating systems
- Components of operating systems
- Components of operating systems
- Wsn operating systems
- 3 easy pieces
- Operating system lab
- Open source operating system
- What is modern operating system
- Components of an operating system
- Design issues of distributed system
- Early operating systems
- Real-time operating systems
- Can we make operating systems reliable and secure