Michael Kifer Introduction To Operating Systems Design And Implementation 2007 Pdf
File Name: michael kifer introduction to operating systems design and implementation 2007 .zip
Introduction to Operating System Design and Implementation.
- CSCE 311: Operating Systems - Computer Science & Engineering
- CSCE 311 Operating Systems
- CSCE 311 Operating Systems
CSCE 311: Operating Systems - Computer Science & Engineering
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site.
Start by pressing the button below! Undergraduate Topics in Computer Science Undergraduate Topics in Computer Science UTiCS delivers high-quality instructional content for undergraduates studying in all areas of computing and information science. From core foundational and theoretical material to final-year topics and applications, UTiCS books take a fresh, concise, and modern approach and are ideal for self-study or for a one- or two-semester course.
The texts are all authored by established experts in their fields, reviewed by an international advisory board, and contain numerous examples and problems.
Many include fully worked solutions. Also in this series Iain D. Enquiries concerning reproduction outside those terms should be sent to the publishers. The use of registered names, trademarks, etc. The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that may be made. Organization of OSP 2. Instance Methods. Step 1: Compiling and Running the Project.
Step 2: Examining the OSP. Step 3: Introducing an Error into do resume. Tasks: Management of Tasks a. Threads: Management and Scheduling of Threads. Memory: Virtual Memory Management.
Devices: Scheduling of Disk Requests. FileSys: The File System. Ports: Interprocess Communication. Resources: Resource Management. It is intended to complement the use of an introductory textbook on operating systems and contains enough projects for up to three semesters. These projects expose students to many essential features of operating systems, while at the same time isolating them from low-level machine-dependent concerns. Thus, even in one semester, students can learn about page replacement strategies in virtual memory management, cpu scheduling strategies, disk seek time optimization, and other issues in operating system design.
Therefore as prerequisites for using OSP 2 , students are expected to have solid Java programming skills; be well-versed in object-oriented programming concepts such as classes, objects, methods, and inheritance; to have taken an undergraduate Computer Science course in data structures; and to have working knowledge of a Java programming environment, i.
Projects can be organized in any desired order so as to progress in a manner consistent with the lecture material. The OSP 2 distribution comes with a reference Java implementation of each module, which is provided to the course instructor. The result is a new and complete operating system, partially implemented by the student. This ensures a consistent interface to OSP 2 and eliminates much of the routine typing, both by the instructor and by the student. The heart of OSP 2 is a simulator that gives the illusion of a computer system with a dynamically evolving collection of user processes to be multiprogrammed.
All the other modules of OSP 2 are built to respond appropriately to the simulator-generated events that drive the operating system. In such cases, the simulator will gracefully terminate execution of the program by delivering a meaningful error message to the user, indicating where the error might be found.
This facility serves both as a debugging tool for the student and as teaching tool for the instructor, as it ensures that student programs acceptable to the simulator are virtually bug-free. There are also facilities that allow students to debug their programs, including a detailed system log of events and various hooks into the system that allow studentprovided methods to be called when an OSP 2 warning or error is detected.
Also, a graphical user interface GUI is available that provides a convenient way for students and instructors to enter simulation parameters and to view various statistics concerning the execution of OSP 2.
Rather it is an abstraction of the common features of several systems although a bias towards Unix and the Mach operating systems can be seen, at times. Moreover, the OSP 2 modules were designed to hide a number of low-level concerns, yet still encompass the most salient aspects of their real-life counterparts in modern systems. Their implementation is well-suited as the project component of an introductory course in operating systems.
Chapter 1 describes the overall organization of OSP 2. Chapter 2 takes the student through an example session with OSP 2.
The latter is intended to help bridge the gap between the OSP 2 manual and the course textbook. Each project chapter provides a complete description of the API for the OSP 2 module the students have been asked to implement, including a clear account of the functionality of each method in the project.
Also provided is a list of methods from other project modules that may be needed to implement the project assignment. The student should refer to the relevant chapters for a more detailed account of these methods. Some parts of OSP 2 rely on third-party software. Finally, we would like to thank Wayne Wheeler and Catherine Brett of Springer London Ltd for bringing their editorial expertise to bear on this project. This includes a description of the organization breakdown into modules , instructions on how to compile, run and submit OSP 2 projects, and general guidelines about programming OSP 2.
This chapter describes in some detail this division of OSP 2 into modules and also provides you with other helpful information you will need to carry out your assignments.
First, though, we shall step back and ask ourselves the questions: What is an operating system, and what kind of operating system 2 1. What is an Operating System? Two generally held views are that an OS is an extended machine, and an OS is a resource manager. OSP 2 has its own system call interface, and you will be introduced to the system calls Java methods that constitute this interface in the subsequent chapters of this book.
By fair, we mean that users programs should be granted equitable allocation of resources during their execution. Note that most of the example resources we have listed are physical ones. For example, there is an OSP 2 module for each of memory, devices, ports, etc. Some of those that immediately come to mind, and which you have probably heard of, are Unix, Linux, Windows, and MacOS.
Mach also uses ports for exception handling each process has an exception port , a topic not treated by OSP 2. OSP 2 is an object-oriented operating system in the truest sense of the term. It is written in the object-oriented programming language Java.
In older systems like Unix, executing programs are organized as processes: the OS is responsible for scheduling processes on the CPU and switching the CPU from one process to another for the purposes of multiprogramming. Multiprogramming is a technique aimed at increasing resource utilization. In this way, the CPU is kept busy doing useful work most of the time, just the kind of thing a resource manager should strive for.
To conclude our brief look at multiprogramming, we should consider a little more carefully what it means to switch the CPU from one process to another, an operation commonly referred to as a context switch. Several steps are involved. First, the currently executing process must be removed from the CPU and placed on a queue associated with the event on which it is waiting.
Then the 4 1. This involves resetting a number of machine registers such as the program counter, general-purpose registers, memory-management registers, etc. The execution of this process can now resume. Processes of this kind are usually referred to as tasks, and that shall be the convention adopted in this book. As a result, switching the CPU from one thread to another is a lot simpler than switching the CPU from one process to another process as required in an OS that does not support threads.
As we shall see, OSP 2 supports tasks and threads. Operating Systems are Event-Driven. Operating systems are a perfect example of so-called event-driven systems. As the name applies, an event-driven system goes into action in response to the occurrence of some event that it is familiar with.
For example, a GUI graphical user interface program is an event-driven system that responds to clicks of the mouse made by the user; the precise piece of code that gets executed depends on what widget tool-bar item, button, radio dial, etc. In the case of operating systems, the events that an OS responds to include system calls made by user or even system programs, hardware interrupts, and machine errors.
When an event is caught, the case in the case-statement corresponding to that event is executed. This kind of event-loop structure is indeed present in operating systems. Consider, for example, how a system call gets executed in a typical OS. The system call number is placed in a register and a trap instruction is executed to switch from user mode to kernel mode.
The kernel examines the system call number and branches to the correct system call handler, usually via a table of pointers to system call handlers indexed on the system call number.
Hardware interrupts are handled in a similar event-driven way by an OS. In this case, a portion of system memory is set aside for the interrupt vector. OSP 2 is also event-driven, not surprising given that, after all, it is an operating system. However, OSP 2 responds to simulated events. That is, at the core of OSP 2 is a simulator called the event engine see Figure 1.
In response to such an event, the appropriate Java method is called. Then the method open in class FileSys will be called. Moreover, if your instructor has assigned module FileSys to you as a project, then it is the code that you wrote for method open that will be executed in response to the event. Section 1. What this all means is that in OSP 2 , there are no user programs per se that are being executed; all such programs are simulated by the event engine in the form of a stream of events that OSP 2 responds to.
There are several advantages to this simulation-based approach. First, events are passed through a so-called interface layer IFL of OSP 2 that sits between the event engine and the various OSP 2 modules in which the code for the system calls resides see, again, Figure 1. The IFL therefore has the opportunity to monitor the execution of system call methods, making sure that the actions taken by these methods are semantically correct.
Should an error be detected in a student implementation of a system call method, the IFL can return a meaningful error message to the student. These messages can be a great help to you in debugging your code. The IFL performs another useful role as far as students and instructors!
CSCE 311 Operating Systems
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below! Undergraduate Topics in Computer Science Undergraduate Topics in Computer Science UTiCS delivers high-quality instructional content for undergraduates studying in all areas of computing and information science. From core foundational and theoretical material to final-year topics and applications, UTiCS books take a fresh, concise, and modern approach and are ideal for self-study or for a one- or two-semester course.
CSCE 311 Operating Systems
Semantics with Applications An Appetizer, 1 9. Practical Distributed Processing, 1 1. University of Applied Sciences Braunschweig Wolfenbuettel.
This book is an introduction to the design and implementation of operating systems using OSP 2, the next generation of the highly popular OSP courseware for undergraduate operating system courses. The book allows students to practice these skills in a realistic operating systems programming environment. Sign up to our newsletter today! Click here for more details Telegraph bookshop.
Он почувствовал, как вокруг него выросла стена, и понял, что ему не удастся выпутаться из этой ситуации, по крайней мере своевременно. И он в отчаянии прошептал ей на ухо: - Сьюзан… Стратмор убил Чатрукьяна. - Отпусти ее, - спокойно сказал Стратмор. - Она тебе все равно не поверит. - Да уж конечно, - огрызнулся Хейл.
Слушай, парень, я американец из Мериленда. Если я и полицейский, то уж точно не здешний, как ты думаешь. Эти слова, похоже, озадачили панка.
ГЛАВА 8 Двухмоторный Лирджет-60 коснулся раскаленной посадочной полосы. Голый ландшафт испанской нижней Эстремадуры бежал за окном, слившись в неразличимый фон, затем замедлил свой бег. - Мистер Беккер! - послышался голос.
Автобус тронулся, а Беккер бежал за ним в черном облаке окиси углерода. - Espera! - крикнул он ему вдогонку. Его туфли кордовской кожи стучали по асфальту, но его обычная реакция теннисиста ему изменила: он чувствовал, что теряет равновесие.
- Голос его, однако, мягче не .