×
You can use excuses to convince others, but how will you convince yourself?
--Your friends at LectureNotes
Close

Advanced Operating System

by Bput Toppers
Type: NoteInstitute: Biju Patnaik University of Technology BPUT Course: MCA Specialization: Master of Computer ApplicationsOffline Downloads: 8Views: 309Uploaded: 1 month agoAdd to Favourite

Share it with your friends

Suggested Materials

Leave your Comments

Contributors

Bput Toppers
Bput Toppers
Advanced Operating Systems Design, Implementation, and Real Time
Table of Contents (Topics) — Not Nearly Final Table of Contents (Topics) Table of Contents (Detailed) List of Figures List of Tables Preface Part I – The Tempo Operating System 1. Introduction 2. The Tempo Operating System 3. Processes 4. Interrupt Handling 5. Memory Management 6. System Services 7. Input/Output 8. File Systems 9. Ethernet Services 10. TCP/IP 11. CIFS (Common Internet File System) Part II – Real-Time Systems and Programming 12. Introduction to Real-time 13. POSIX Real-time Extensions 14. It’s About Time 15. Signals 16. Semaphores iii
17. Messages 18. Memory, Sharing and Locking 19. Real-time Input/Output 20. Real-time Scheduling 21. Priority Inversion, Solutions Appendices A. Obtaining and Installing Tempo B. Tempo Development Environment: Cygwin and Bochs C. Device/Chipset Details (Datasheet abstractions) C.1 Intel 8237 DMA Controller C.2 Intel 8254 Programmable Interval Timer C.3 Intel 8259A Programmable Interrupt Controller C.4 Maxim 14285 Real-Time Clock C.5 XXX – 6845 Video Controller C.6 XXX – 16550 UART C.7 XXX – Parallel port C.8 XXX – NatSemi DP8390 NIC C.9 XXX – Intel 8042 (keyboard) D. References XXX – Books XXX – Manuals XXX – Web Sites Index iv
Introduction Introduction 1 These notes are provided for those individuals who need to gain a more complete understanding of operating systems than is provided by a typical undergraduate course. The notes are currently a “work in progress” and suggestions to the author are welcome. 1.1 Background and Prerequisites All undergraduate computer science curriculum recommendations include a course on operating systems. This required course is not one in which the user is taught how to enter commands, create and list directories, and install and maintain the operating system. These are certainly appropriate skills, but don’t provide the understanding of operating systems expected by the designers of computer science curricula. Instead, the undergraduate operating systems course that is an appropriate prerequisite for this material covers the purposes of an operating system, the variety of designs possible, and the traditional algorithms used in an operating system implementation. Two topics covered in some depth in that course are concurrency and mutual exclusion. These topics are not exclusively part of the operating system domain, but the undergraduate operating systems course is usually the first one in which students are exposed to these topics. There is a wealth of information to be covered in the undergraduate course, and it is rare that students have many opportunities to engage in significant implementation tasks (except for small “toy” projects). Indeed, it is usually the case that there is insufficient time in the course to cover all of the background material. 1.2 The Approach There are two parts to the material in these notes. Although they are presented sequentially, the material in the first part will prove beneficial later. 1.2.1 Design and Implementation of the Tempo Operating System We will first examine in detail the design and implementation of an operating system called Tempo. This is not a “toy” operating system of the kind that is usually provided for use with undergraduate operating system textbooks (with some exceptions). Instead, it is a complete system that can boot and run on most typical x86-based personal computers. There are numerous goals we hope to achieve by studying this system: • Better understanding of the purpose of system calls: By examining the detail of how system resources and services are provided to application programs, we can better appreciate the facilities provided by those operating systems we typically use (e.g. Microsoft Windows and UNIX varieties). Advanced Operating Systems — Design, Implementation, and Real Time 1

Lecture Notes