1 Background of UNIX Operating System 1.1 Introduction of Operating System 1.2 Types of UNIX 1.3 History of UNIX 1.4 Summary Problems References
2 How to Start 2.1 UNIX Software Architecture 2.1.1 UNIX Kernel 2.1.2 System Call Interface 2.1.3 Standard Libraries and Language Libraries 2.1.4 UNIX Shell 2.1.5 Applications 2.2 UNIX Environment 2.3 Character User Interface Versus Graphical User Interface. 2.4 UNIX Command Lines 2.4.1 UNIX Command Syntax 2.4.2 Directory Operation Commands 2.4.3 File Operation Commands 2.4.4 Displaying Online Help 2.4.5 General Utility Commands 2.4.6 Summary for Useful Common Commands 2.5 UNIX Window Systems 2.5.1 Starting X 2.5.2 Working with a Mouse and Windows 2.5.3 Terminal Window 2.5.4 Using a Mouse in Terminal Windows 2.6 Shell Setup Files 2.7 Summary Problems References
3 Text Editors 3.1 Difference Between Text Editors and Word Processors 3.2 Introduction of Pico Editor 3.2.1 Start pico, Save File, Exit pico 3.2.2 Create a New File with Pico 3.2.3 Cursor-moving Commands in Pieo 3.2.4 General Keystroke Commands in Pico 3.3 The vi Editor and Modes 3.3.1 Three Modes of the vi and Switch Between Them ~ ~ ~ 3.3.2 Start vi, Create a File, Exit vi 3.3.3 Syntax of the vi Commands 3.4 Practicing in Insert Mode of the vi Editor 3.5 Practicing in Command Mode and Last Line Mode of the viEditor 3.6 Using Buffers of the vi Editor 3.7 The vi Environment Setting 3.8 Introduction of the emacs Editor 3.8.1 Start emacs, Create File, Exit emacs 3.8.2 Buffers, Mark and Region in emacs 3.8.3 Cursor Movement Commands 3.8.4 Keyboard Macros 3.8.5 Search and Replace 3.8.6 Operation Example 3.8.7 Programming in emacs 3.9 Summary Problems References
4 UNIX Process Management 4.1 Multiple Processes' Running Concurrently 4.1.1 Pundamental Concept for Scheduler and SchedulingAlgorithm 4.1.2 UNIX Scheduling Algorithm and Context Switch 4.2 Process States ……
When the demand paging handler is invoked during the fork system call,the kernel increments the region reference field of shared regions for the childprocess. For each of private regions of the child process, the kernel allocates anew region table entry and page table. The kernel then examines each entryin page table of the parent process. If a page is valid, the kernel incrementsthe reference process number in its frame table entry, indicating the numberof processes that share the page via different regions rather than through theshared region in order to let the parent and child processes go in differentways after the execve system call. Similarly, if the page exists on the swapspace, it increments the reference field of the swap table entry for this page.Now the page can be referenced through both regions, which share the pageuntil one of the parent or child processes writes to it. Then the kernel copies the page so that each region has a private version.To do this, the kernel turns on the copy-on-write bit for each page table entryin private regions of the parent and child processes during the fork systemcall. If either process writes the page, it causes a protection page fault thatinvokes the protection handler. Now we can see that the copy-on-write bitin a page table entry is designed to separate a child process creation fromits physical memory allocation. In this way, via protection page fault, thememory allocation can postpone until it is needed. The protection page fault can be caused in two situations. One is whena process references a valid page but its permission bits do not allow theprocess access, and the other is when a process tries to write a page whosecopy-on-write bit is set by the fork system call. The kernel has to check firstwhether or not permission is denied in order to make a decision about whatto do next, to signal an error message or to invoke the protection handler. Ifthe latter, the protection handler is invoked. When the protection handler is invoked, the kernel searches for the ap-propriate region and page table entry, and locks the region so that the pagecannot be swapped out while the protection handler operates on it. If thepage is shared with other processes, the kernel allocates a new frame andcopies the contents of the old page to it; the other processes still referencethe old page. After copying the page and updating the page table entry withthe new frame number, the kernel decrements the process reference numberof the old frame table entry. ……