Chapter 3 Processes What is a process A

  • Slides: 17
Download presentation
Chapter 3 – Processes What is a process? A Program in execution A running

Chapter 3 – Processes What is a process? A Program in execution A running program Maybe threads Always memory File descriptors

What does the OS Have to Do? Create proc Delete/Kill Proc Start/Stop Proc Allocate

What does the OS Have to Do? Create proc Delete/Kill Proc Start/Stop Proc Allocate RAM Allocate CPU time

How to make a windows process STARTUPINFO si; PROCESS_INFORMATION pi; Zero. Memory( &si, sizeof(si)

How to make a windows process STARTUPINFO si; PROCESS_INFORMATION pi; Zero. Memory( &si, sizeof(si) ); si. cb = sizeof(si); Zero. Memory( &pi, sizeof(pi) ); if (! Create. Process ( TEXT("F: \C++ Programs\Hangman\Debug\Hangman. exe"), NULL, FALSE, CREATE_NEW_CONSOLE, NULL, &si, &pi ) ) { cout << "Unable to execute. "; }

Windows does it differently Faster but less flexible.

Windows does it differently Faster but less flexible.

What does a process look like in the kernel? It’s a data structure What

What does a process look like in the kernel? It’s a data structure What RAM What threads What file descriptors Process State/PC/CPU registers/Accounting/. . . Etc. Book says “Process control block”. Linux says “task_struct”. http: //lxr. linux. no/linux+v 2. 6. 35/include/linux/sched. h #L 1173

How to make a process PID 1 is special Otherwise. . .

How to make a process PID 1 is special Otherwise. . .

Fork/Exec

Fork/Exec

Process Tree

Process Tree

Process Tree

Process Tree

Process Termination Call exit Make an error Have someone kill you Bruce Willis

Process Termination Call exit Make an error Have someone kill you Bruce Willis

Process Control Block A Process Control Block is a data structure in the kernel

Process Control Block A Process Control Block is a data structure in the kernel that records information about the process. (struct task_struct in Linux) Process ID State (running, waiting) Memory CPU Registers User/Permission Which file descriptors Etc.

Memory Maps There is a thing called the MMU It makes where ram is

Memory Maps There is a thing called the MMU It makes where ram is look different for each process. Comes in a later chapter.

Memory Map for a Process

Memory Map for a Process

Multiple Processes for the same Program Draw on board What is shared? What is

Multiple Processes for the same Program Draw on board What is shared? What is not shared?

Lifetime of a Process Draw Diagram Label causes of movement.

Lifetime of a Process Draw Diagram Label causes of movement.

Scheduling We multi-task (later chapter) Short Term Scheduler – the normal one Works on

Scheduling We multi-task (later chapter) Short Term Scheduler – the normal one Works on the millisecond basis Maximize work / Minimize latency Long Term Scheduler – if it exists Works on the minute/hour/day basis Keep the system not overloaded

Definition: Context Switch Context switch: Change from running a thread or process to another.

Definition: Context Switch Context switch: Change from running a thread or process to another. Interrupt gives kernel control, in privileged mode Stop the thread. Save state (CPU reg, PC, etc. ) Change memory map Go back to user mode Load new state. Jump to resume other thread.