\HAPbookmark{}{section.1}{Introduction}{2}{} \HAPbookmark{}{section.1.1}{What is a process?}{2}{section.1} \HAPbookmark{}{section.1.2}{What is a process? --- 2}{3}{section.1} \HAPbookmark{}{section.1.3}{What is a thread?}{4}{section.1} \HAPbookmark{}{section.1.4}{Program counter}{5}{section.1} \HAPbookmark{}{section.1.5}{Environment of a process}{6}{section.1} \HAPbookmark{}{section.1.6}{Permissions of a Process}{7}{section.1} \HAPbookmark{}{section.2}{Multitasking}{8}{} \HAPbookmark{}{section.2.1}{Multitasking}{8}{section.2} \HAPbookmark{}{section.2.2}{Multitasking --- 2}{9}{section.2} \HAPbookmark{}{section.2.3}{Multitasking --- 3}{10}{section.2} \HAPbookmark{}{section.3}{Start of Process}{11}{} \HAPbookmark{}{section.3.1}{Birth of a Process}{11}{section.3} \HAPbookmark{}{section.3.2}{Process tree}{12}{section.3} \HAPbookmark{}{section.4}{Scheduler}{13}{} \HAPbookmark{}{section.4.1}{Scheduler}{13}{section.4} \HAPbookmark{}{section.4.2}{When to Switch Processes?}{14}{section.4} \HAPbookmark{}{section.4.3}{Scheduling statistics: \texttt {vmstat}}{15}{section.4} \HAPbookmark{}{section.4.4}{Interrupts}{16}{section.4} \HAPbookmark{}{section.5}{Process States}{17}{} \HAPbookmark{}{section.5.1}{Process States}{17}{section.5} \HAPbookmark{}{section.5.2}{What is Most Common State?}{18}{section.5} \HAPbookmark{}{section.5.3}{Most Processes are Blocked}{19}{section.5} \HAPbookmark{}{section.5.4}{Linux Process States}{20}{section.5} \HAPbookmark{}{section.5.5}{Linux Process States --- 2}{21}{section.5} \HAPbookmark{}{section.5.6}{Linux Process States --- 3}{22}{section.5} \HAPbookmark{}{section.5.7}{Process States: \texttt {vmstat}}{23}{section.5} \HAPbookmark{}{section.5.8}{Tools for monitoring processes}{24}{section.5} \HAPbookmark{}{section.5.9}{Monitoring processes in Win 2000}{25}{section.5} \HAPbookmark{}{section.6}{top}{26}{} \HAPbookmark{}{section.6.1}{Process Monitoring --- \texttt {top}}{27}{section.6} \HAPbookmark{}{section.6.2}{load average}{28}{section.6} \HAPbookmark{}{section.6.3}{\texttt {top}: process states}{29}{section.6} \HAPbookmark{}{section.6.4}{top and memory}{30}{section.6} \HAPbookmark{}{section.6.5}{Virtual Memory: suspended processes}{31}{section.6} \HAPbookmark{}{section.6.6}{Suspended Processes}{32}{section.6} \HAPbookmark{}{section.7}{Process Control Blocks}{33}{} \HAPbookmark{}{section.7.1}{OS Process Control Structures}{34}{section.7} \HAPbookmark{}{section.7.2}{What is in a PCB}{35}{section.7} \HAPbookmark{}{section.7.3}{Context Switch}{36}{section.7} \HAPbookmark{}{section.7.4}{Execution Context}{37}{section.7} \HAPbookmark{}{section.7.5}{Program Counter in PCB}{38}{section.7} \HAPbookmark{}{section.7.6}{PCB Example}{39}{section.7} \HAPbookmark{}{section.7.7}{PCB Example Diagram}{40}{section.7} \HAPbookmark{}{section.7.8}{PCB Example --- Continued}{41}{section.7} \HAPbookmark{}{section.7.9}{Address of I/O instructions}{42}{section.7} \HAPbookmark{}{section.8}{System Calls}{43}{} \HAPbookmark{}{section.8.1}{System Calls}{44}{section.8} \HAPbookmark{}{section.9}{IPC}{45}{} \HAPbookmark{}{section.9.1}{Problem with Processes}{46}{section.9} \HAPbookmark{}{section.9.2}{Interprocess Communication (IPC)}{47}{section.9} \HAPbookmark{}{section.9.3}{IPC --- Shared Memory}{48}{section.9} \HAPbookmark{}{section.9.4}{IPC --- Signals}{49}{section.9} \HAPbookmark{}{section.9.5}{Signals and the Shell}{50}{section.9} \HAPbookmark{}{section.10}{threads}{51}{} \HAPbookmark{}{section.10.1}{Threads and Processes}{52}{section.10} \HAPbookmark{}{section.10.2}{Threads have own\dots }{53}{section.10} \HAPbookmark{}{section.10.3}{Threads share a lot}{54}{section.10} \HAPbookmark{}{section.10.4}{Problem with threads:}{55}{section.10} \HAPbookmark{}{section.11}{Race Condition}{56}{} \HAPbookmark{}{section.11.1}{Race Conditions}{57}{section.11} \HAPbookmark{}{section.11.2}{Critical Sections}{58}{section.11} \HAPbookmark{}{section.11.3}{Race Condition --- one possibility}{59}{section.11} \HAPbookmark{}{section.11.4}{Example --- another possibility}{60}{section.11} \HAPbookmark{}{section.11.5}{Solution: Synchronisation}{61}{section.11} \HAPbookmark{}{section.11.6}{File Locking}{62}{section.11} \HAPbookmark{}{section.12}{Summary and References}{63}{} \HAPbookmark{}{section.12.1}{Summary --- Process States, Scheduling}{64}{section.12} \HAPbookmark{}{section.12.2}{Summary --- Processes and Threads}{65}{section.12} \HAPbookmark{}{section.12.3}{References}{66}{section.12}