The process might not change, so the process state (running vs blocked) might not change.
3. Mode switch vs process switch
Some OSes run kernel mode in the user's process context, so they aren't the same.
4. Storing the PC
PC = Program Counter - without it, the process can't start up again where it left off executing
5. Preemption
Taking the processor away from one process to run another one. Typically this involves a timer interrupt and the scheduler deciding that the preempted process has run long enough, though it could also happen due to user input (an I/O interrupt) that causes a change in the importance of a running process.
Notes from my notebook
Kernels and microkernels
What do OSes do again?
Microkernel features (break 7 in book down to 3 categories)
Minimal ("Micro" kernel)
Limited functions and API
Easier to validate since it's smaller, thus more reliable
Easier to port to new hardware (thus also flexible)
Flexible
Can add OS functions because the kernel functions are designed to allow OS functions to exist outside the kernel
Easier to port (feature of being minimal)
Distributed computing support
Can schedule separate OS processes on separate processors
Message passing allows you to distribute processes remotely - even outside the physical bounds of a computer's RAM
Major functions
Basic process management
Once a separate scheduling task has chosen a process to run, the microkernel makes it execute
Enough basic process management to get a more sophisticated scheduling process running
Inter-process communication (IPC)
Instead of doing API calls on the stack, the arguments are stored in RAM and passed between processes as data in "messages"
Allows work to be done by separate processes - on-the-stack API forces the requester to block until done
I/O and interrupt handling
Microkernel software fields interrupts and converts them into OS-level "signal" events that get passed to device driver processes
Device drivers get interrupts indirectly
Memory control
Basic functions, while real work is done by a separate memory management process
Grant - give space to a process
Map - share space with a process
Flush - retrieve space previously given to a process
Memory management "owns" all RAM
Grants subsets of RAM to running processes
Processes may grant or map their RAM with other processes
A process may flush its own RAM, but not others'
Diagrams of processes/threads in Windows and Unixes