Teaching Operating Systems: The Windows Case

Size: px
Start display at page:

Download "Teaching Operating Systems: The Windows Case"

Transcription

1 Teaching Operating Systems: The Windows Case Andreas Polze Operating Systems and Middleware Hasso-Plattner-Institute at University Potsdam Potsdam, Germany Dave Probert Windows Kernel Architecture Microsoft Corporation One Microsoft Way, Redmond, Washington, USA ABSTRACT An operating system (OS) is a program that manages computer hardware. And although today s commercial-off-the-shelf desktop operating systems appear to be an integral part of PCs and workstation to many users, a fundamental understanding of the algorithms, principles, heuristics, and optimizations used is crucial for creating efficient application software. Furthermore, many of the principles in OS courses are relevant to large system applications like databases and web servers. Within this paper, we present our approach towards teaching OS concepts based on the Windows family of operating systems. In contrast to many stable Unix-based curricula, a Windows-based OS curriculum has to take into account the OS as a moving target. And although Windows source code has been made available to academic institutions, managing complexity is among the biggest challenges when teaching OS concepts based on Windows. Teaching experiences reported within this paper have lead to development of the Curriculum Resource Kit (CRK), an entire Windows-based OS curriculum that is freely available for download Categories and Subject Descriptors D.4.0 [Operating Systems]: OS principles, Concurrency, Scheduling and Dispatch, Memory Management, Device Management Experimental Evaluation, Source code analysis. General Terms: Algorithms, Documentation, Experimentation. Keywords: Windows, OS curriculum. 1 INTRODUCTION The roots of Windows 1 reach back to the late 1980s. Back then, many interesting things were happening in the operating system design space including SVR4, the Mach microkernel, a flurry of innovations in networking and windowing systems, and many research projects on OS fundamentals. The desire to gain in-depth knowledge of these exciting developments motivated many computer science students to study operating systems. Things have changed since then. Today most users do not even distinguish the computer and its operating system. And from the high level, GUI point of view, there are few apparent differences among the capabilities of today s off-the-shelf Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGCSE'06, March 1-5, 2006, Houston, Texas, USA. Copyright 2006 ACM /06/ $5.00. operating systems. Correspondingly, students often do not see the need to understand the internals of the OS they use. This does not bode well for OS courses, and we are working on changing this trend. Within this paper, we advocate a hands-on approach towards teaching (and learning) OS concepts. We present our experiences from teaching Windows-based OS courses during the last five years. We suggest a three-phase scheme of lectures, seminars, and source code labs to motivate students to learn specific OS implementation details. We have compiled publicly available lecture materials augmented by labs, quizzes, and assignments. The remainder of the paper is structured as follows: Section 2 reports on recent initiatives taken by Microsoft to support teaching OS classes based on Windows. Section 3 gives an overview of an envisioned OS course and takes a brief tour through the publicly available curriculum resource kit. Taking the topic scheduling and dispatch as an example, Section 4 looks into the detailed structuring of the lecture, discusses one lab scenario, and presents a potential homework assignment. Section 5 presents some student feedback aggregated over the last couple of years. Section 6 presents future work a completely new format of teaching OS classes by having students build their own OS from high-level abstractions such as processor or memory (ProjectOz). Section 7 concludes the paper. 2 TEACHING WINDOWS RECENT INITIATIVES The original Windows was built on extensions of the DOS codebase written for single-users running only a few applications, and lacked many standard OS features. Starting in 1988 Microsoft began development of a new code-base for Windows, called NT. The project was led by Dave Cutler, who was the primary architect of many significant operating systems at DEC, including RSX-11 and VAX/VMS. With the release of Windows XP in 2001 Microsoft moved to NT as its single version of Windows for general purpose computing, and began to deprecate DOS-based Windows. The NT kernel is highly asynchronous and preemptively multithreaded. The architecture is organized around a central facility for managing kernel/user references and access to kernel data structures. The I/O system is modular and extensible. The virtual memory API separates virtual addresses management from memory objects, and provides low-level access to addressspace and physical memory for large applications. CPU 1 Within this paper, Windows refers to Windows NT and its descendants Windows 2000/XP/Server 2003/Vista. 298

2 scheduling is thread-based, and carefully uses per-cpu data and lock-free synchronization for scalability. Starting in 2005 Microsoft has embarked on three complementary initiatives to improve the accessibility of the NT kernel for use by universities in instruction and research in operating systems. Microsoft s goals are to (1) improve the diversity of OS instruction by supporting inclusion of cases based on NT, (2) enable the use of Windows as a platform for teaching OS courses, and (3) help revive interest in operating systems topics among students by increasing the excitement and relevance of OS courses. The three initiatives provide curriculum materials illustrating OS principles with Windows, access to the core kernel source code, and an experimental environment based on the native NT API for building OS projects. 2.1 Curriculum Resource Kit (CRK) The Windows CRK is a collection of instructional material that follows the ACM/IEEE Operating System Body of Knowledge to illustrate OS concepts using Windows XP as a case study. The CRK is based on the book Windows Internals[1] and commercial classes by David A. Solomon and Mark E. Russinovich[2] as adapted for university use by Andreas Polze. The experiments, quizzes, and assignments, which are integrated with the course materials, have been tested over the last five years in an Operating Systems Architecture class described in this paper. The CRK Core units are available to universities for supplementing OS lectures and may be downloaded from Microsoft's Curriculum Repository [3]. 2.2 Windows Research Kernel (WRK) The WRK contains the bulk of the source code for the NT kernel (compatible with Windows XP for x86 and AMD64). These sources include all the core sources for object management, processes, threads, virtual memory, the I/O system, etc. The major pieces of kernel code that are not included are the plugand-play/power-management facilities, the virtual DOS machine, and the kernel debugger engine. The omitted modules are provided as binary objects which can be linked to produce a fully functional NTOS executable which can be booted on Windows XP. The initial release of the WRK in the fall of 2005 included just the sources, for complementary use with the CRK, and use by authors of textbooks on Windows. In the spring of 2006 Microsoft will release the WRK in a kit with a build environment, VirtualPC, sources for sample device and file system drivers (from the Device Driver Kit and File System KIT), as well as better documentation, example source-based projects, and kernel regression tests. The WRK is licensed under a simple, more liberal license than previous Microsoft product sources. The WRK license grants wide non-commercial use of the sources, including sharing of derivatives with other faculty, open use in the classroom and by students, and publication of code snippets in textbooks and research papers. 2.3 ProjectOZ When NT was developed it wasn t clear what OS API it would provide (the original guess was OS/2). To accommodate this uncertainty NT was designed using a subsystem model, like Mach. NT is not a microkernel, but it does use a client/server model to implement OS APIs in user-mode server processes. The NT kernel itself has a native API, but apart from use by device drivers little has been published -- since, unlike the Win32 API, applications based on the NT API are not portable to Windows 9x. Because the native NT API has to support the subsystem model, it tends to be lower-level and give the programmer more direct access to the underlying kernel data structures and mechanisms. ProjectOZ is an experimental environment that is built on top of the native NT API for universities to use as a platform for OS projects. It uses the NT API to provide simple abstractions of a CPU, trap mechanism, and MMU using the same approach taken by the SPACE project at UC Santa Barbara [4]. ProjectOZ comes with a basic OS (BasicOZ) built on top of the SPACE abstractions. Various projects are suggested which allow the student to experiment with OS data structures and algorithms by modifying BasicOZ and measuring the resulting change in system behavior. The principles behind the ProjectOZ approach are use of abstraction to minimize the amount of low-level coding necessary and significant reduction in the amount of code that students must read in order to proceed with their projects. 3 WINDOWS COURSE STRUCTURING Commercial off-the-shelf operating systems are complex software systems of remarkable size. Gaining a thorough understanding of an OS s design rationales, algorithms, heuristics, and implementation strategies from just reading source code is at least difficult. Nevertheless, students should be able to learn about these details in terms of case studies. Our approach to teaching an OS curriculum is three-fold: We start with a two-semester undergraduate lecture series on the various aspects of an OS. Classroom experiments, labs, and homework assignments accompany this series. Also, the first semester of the lecture series is mandatory for B.Sc students at our institution.. A seminar on operating system services and administration is the second offering to students. Within this seminar, students are expected to set up and experimentally evaluate systems. Interoperability in heterogeneous settings is of central concern. The last step in our OS curriculum is a source-code analysis project. Students are asked to explain the exact implementation of certain OS functionality based on the actual source code. 3.1 The Lecture Series We are using Windows as the primary vehicle for explaining OS concepts. What started out as an add-on to a traditional Unixbased OS curriculum has evolved to a self-contained OS course. The effect on the course structuring is interesting: whereas in the first case it was sufficient to cover Windows details only, the latter one requires the incorporation of a fair amount of Unix know how (i.e.; scheduler implementation, file system, interprocess communication, networking) in order to explain to students the rationales for certain Windows design decisions. The general structuring of our OS lecture follows the ACM OS Body of Knowledge (OS BoK): OS1. Overview of operating systems [core] OS2. Operating system principles [core] OS3. Concurrency [core] OS4. Scheduling and dispatch [core] OS5. Memory management [core] OS6. Device management [elective] 299

3 OS7. Security and protection [elective] OS8. File systems [elective] OS9. Real-time and embedded systems [elective] OS10. Fault tolerance [elective] OS11. System performance evaluation [elective] OS12. Scripting [elective] However, we found the incorporation of supplementary units covering networking, interoperability, and a comparison of Windows and Unix implementations helpful and valuable. In addition to the OS BoK structuring with core/elective units, we have separated basic and advanced topics this allows for tailoring a one-semester course without omitting too many of the elective units. 3.2 The Seminar Typically, about 20% of a student population will develop an in-depth interest in OS internals, services, and administration. Students attending our OS services & administration seminar are given access to lab computers with full privileges and are expected to give a talk reporting the results of their experiments including setup of services, recovery, packaging and deployment of software. Seminar topics are closely linked to current research [5][6], a number of Ph.D. students act as supervisors and teaching assistants this influences definition of prospective topics. A few recent topics for talks: Microsoft Installer & Windows packaging Kerberos Windows/Unix interoperability Distributed File Systems the Andrew file system Shells & Scripting Windows Scripting Host, WMI, /bin/sh, the OpenVMS Digital Command Language Root Kits Virtualization Virtual PC, VMware, Solaris zones 3.3 The Source-code Analysis Project Microsoft offers access to Windows source code for qualifying academic institutions. Using this opportunity, we offer really interested students a source code analysis project seminar. Within the seminar, students investigate and report about central mechanisms, such as the interrupt processing, scheduler implementation, memory management, and Deferred Procedure Calls in Windows. Also, students are expected to make changes to the OS and build, install, and run their own OS versions. We have an isolated lab setup for source code experiments. Students are required to sign a non-disclosure agreement. About 5% of a student population takes the challenge of studying sources of a complex commercial OS. And, although it is interesting to study Windows sources, other OSes are more readily available to students (i.e.; Linux, Solaris, Mac OS X). However, access to Windows sources will be further simplified in the future (see Section 2). 4 UNIT OS 4 A CLOSER LOOK In context of our curriculum at HPI, we offer a lecture Operating System Architecture. This lecture constitutes the foundation of our OS-related teaching activities and has lead to creation of the curriculum resource kit (CRK)[3]. Commercial classes given by David A. Solomon and Mark E. Russinovich[2] form the basis for the majority of CRK course materials. Here, we are taking a closer look at Unit OS 4, Scheduling and Dispatch and discuss typical learning styles and presentation techniques. Unit OS 4 is structured as follows: 4.1. The Concept of Processes and Threads (Core) 4.2. Windows Processes and Threads (Core) 4.3. Windows Process and Thread Internals (Core/Advanced) 4.4. Windows Thread Scheduling (Core) 4.5. Advanced Windows Thread Scheduling (Core/Advanced) 4.6. Scheduling and Dispatch labs, quizzes, and assignments In 4.1, we introduce basic concepts, such as the Process Concept, Thread States, Context Switches, Approaches to CPU Scheduling, and Multithreading Models. Section 4.1 is independent of any particular OS, however, it relates concepts to their implementations in Windows and Unix (Linux). Section 4.2 focuses on the notions of processes, threads, jobs, and fibers including their APIs and monitoring instrumentation in Windows, whereas Section 4.3 discusses data structures and kernel representation of the above-mentioned abstractions and is augmented by kernel debugger demos and experiments. Section 4.4 discusses the general uni-processor scheduling algorithms and their implementation, including data structures, in Windows. In contrast, Section 4.5 focuses on multiprocessor scheduling and the various optimizations recently added to Windows in order to enhance performance and scalability. Section 4.6 finally consists of numerous labs, quizzes, and two series of homework assignments one investigating concepts and algorithms, the second consisting of programming assignments. (Solutions to quizzes and assignments are made available as an instructor supplement to the CRK). 4.1 Scheduling Lecture - Excerpt Within our lecture, this Section discusses Windows Scheduling Principles, Priorities (Windows API vs. NT Kernel), Scheduling Data Structures, Scheduling Scenarios, and Priority Boosts and Priority Adjustments. Figure 1 shows the thread state diagram. In contrast to many other operating systems, Windows is thoroughly instrumented. Tools, such as the performance monitor can be used to investigate a multitude of performance counters, thus gathering data about the internal state of the Figure 1: Scheduling state diagram Windows OS. In our lecture, after describing the scheduling algorithm used by Windows and the expected system behavior, we incorporate labs that dig into an actual live system. For example, we use performance monitor to display scheduling state changes in real-time (10ms resolution). CPU utilization, fairness, throughput, and minimal response time are typical optimization criteria for CPU schedulers. Most scheduling algorithms try to achieve these goals by dynamically assigning priorities to processes. There are two general classes of scheduler implementation: schedulers based on priority-elevation (1) and decreasing priority schedulers with aging (2). The VMS and Windows schedulers fall into class 300

4 (1), whereas Mach, Unix, and Linux fall into class (2). Since schedulers are workload-dependent and based on heuristics, there exist many variations within both classes (see Figure 2). Priority Base Priority Figure 2: Priority boosting and decay We discuss priority boosting in context of the Windows scheduler implementation and demonstrate the system behavior in a lab using performance counter data (Figure 3). Select labs are demonstrated during the lecture, however, students are also expected to experiment on their own. In some cases, this requires an elevation of privileges for the students accounts. CpuStres settings: 4.2 Quizzes and Assignments From a student s perspective, quizzes and assignments provide a valuable mechanism to identify facts he is expected to know. We provide two example quizzes and assignments for Unit OS 4 Scheduling and Dispatch : Assignment 4.1.3: two active threads activity level = busy (about 25% wait time) normal process priority class, normal thread priorities Usually only visible in PerfMon if target app owns foreground window (hence longer quantum) These are showing +2 boost (from 8 to 10) for foreground apps after wait completion Boost upon wait complete quantum Run Wait Run Priority decay at quantum end Preempt (before quantum end) Figure 3: Observing the scheduler Consider a uni-processor system that uses a round-robin algorithm with 16 priorities (0-15, 0 = lowest, 15 = highest priority) for thread scheduling. The lengths of the time quantum shall be 20ms. Context switching time is negligible. Running threads will not be interrupted until quantum end (Scheduling decisions are only be made at quantum end). Our system has a workload of three single-threaded processes. These processes (threads) have the following parameters: Thread ID Ready at Execution time Th1 t = 0ms 70ms Th2 t = 15ms 90ms Th3 t = 30ms 80ms Round base p - Draw a Gantt chart illustrating the execution of these threads under the assumption that they all are executed at a static priority of 8. - How does the execution order change if Th3 is executed with priority 9. Th1 shall be executed with priority 7 and get into an I/O wait state after 16ms execution time. Th1 s priority is being boosted by 3 after I/O completion. Th1 leaves its wait state at t=50ms. Th1 s priority then shall be decreased by 1 at Run quantum end until it reaches its base priority of 7. Draw the corresponding Gantt chart. Assignment 4.2.3: Design and implement a version of the UNIX time-command (mytime.exe) using the Windows API. The mytime-command should interpret its arguments as a program that has to be executed within a separate process. Mytime.exe shall call GetSystemTime() before creation and after completion of the new process. Use the Winodws-functions CreateProcess() and WaitForSingleObject() to synchronize mytime.exe with the newly created process. A few examples for quizzes are given below: Thread Quiz: Which information is not associated with a thread s Thread Control Block (TCB): a. Program counter b. CPU registers c. Memory management information d. CPU scheduling information e. Pending I/O information Process Data Structures Quiz: For a Windows process, the OS maintains various data. Which information is associated with the executive process object? a. Access Token b. List of Virtual Address Descriptors (VADs) c. List of Threads d. List of open handles e. List of open windows Solutions to assignments and answers to quizzes are provided separately as instructor supplement to the CRK. 5 STUDENT FEEDBACK We have gained experience teaching Operating System Architecture classes in two different contexts: First, as an extension to a classical, Unix-based CS curriculum (at Humboldt University Berlin, Germany) and secondly as the basic, undergraduate OS lecture (at Hasso-Plattner-Institute at University Potsdam, Germany). Feedback varies considerably. A Windows-based OS class as addition to the Unix-based curriculum generates an audience of 30-40% of a students population. These students tend to be highly motivated. They ask for every single implementation detail and are easily able to compare Windows concepts with those found in other OSes. General student feedback: The class (core+advanced) contains lots of details; experiments are very helpful to get hands-on experience; typical self-study time is one hour per lecture hour. A Windows-based OS class as the only (mandatory) OS class in a curriculum presents different challenges. Historic notes, abstract presentation of concepts, and comparison of approaches taken in other OSes are crucial for most students. General student feedback: Many implementation details (esp. advanced sections); sometimes difficult to connect concepts and implementation; programming assignments are (too) hard; time spent on self-study: two hours per lecture hour or more. Obviously, it would be perfect to have the Windows class as an add-on to a Unix class and draw only enthusiastic students as audience. Most students reported, that they gained a much better understanding of the OS internals and behavior. One of the most rewarding comments we actually received was: This was the by far most challenging lecture during my study 301

5 so far; (sometimes confusingly) many implementation details were presented; however, I assume that the knowledge from this lecture will help immensely with future complex software engineering projects. 6 FUTURE WORK ProjectOz ProjectOZ is an extensible collection of projects for investigating OS principles. It is based on the SPACE project at UC Santa Barbara which investigated building operating systems without monolithic kernels [7]. The basic model of a processing unit in SPACE is as follows: RETI External interrupts implementations according to CPU time, context switches, page faults, disk seeks, etc. workloads workloads workloads ProjectOZ ProjectOZ ProjectOZ BasicOZ BasicOZ BasicOZ SPACE.exe SPACE.exe SPACE.exe NT native API CPU MMU MEMORY TRAP handler Figure 4: Processing model in SPACE The trap vector and MMU define the execution environment of the CPU. SPACE provides abstractions of these elements rather than the more complex abstractions of process/virtual-memory, thread, and RPC presented by most OSes. ProjectOZ builds a SPACE-like set of abstractions on top of the native NT API. CPU uses native NT threads and MMU uses mapped views. TRAPS generalized to cross-domain portals using the NT subsystem exception ports, and physical MEMORY is built using a shared NT memory section The SPACE abstractions are implemented as a subsystem program which manages the abstractions and implements portal traversal. The subsystem also provides basic device models, including facilities for device registers, interrupts, and DMA. ProjectOZ takes the space abstractions and builds a basic OS on top, called BasicOZ, with features such as the following: User and Kernel address spaces, including system call stubs that traverse a portal to the kernel space and a basic handletable for referring to kernel data objects System devices such as timer, clock, console, disk, NIC with simple device drivers using DMA, interrupts, and IRQLs Trivial pre-populated filesystem with one directory, simple read/write, and without operations such as rename Threads, but no preemption and no guard pages on the stack Processes with a single thread and static images Virtual memory has no sharing, simple pagefile, no caching of pages, synchronous writes, and random replacement The algorithms and data structures are as simple as possible, using linked lists everywhere. This is in keeping with two primary goals: minimizing the amount of code to be read and convincing students they can easily improve BasicOZ. ProjectOZ comes with SPACE, BasicOZ, and a set of workload programs which exercise the system. There is a smorgasbord of projects implementing various enhancements to BasicOZ to produce different ProjectOZ systems. Using the networking device model in SPACE, multiple SPACE programs can communicate as if part of a distributed system despite running on the same machine. This provides support for experiments in networking protocols and distributed systems. SPACE.exe contains a lot of instrumentation which can be used to measure different aspects of system performance. Students are able to contrast various algorithms and NT Kernel Figure 5: BasicOZ structure Finally, ProjectOZ is intended to be an open-ended platform that faculty can extend by adding device models, specifying new projects, and even fundamentally improving BasicOZ and SPACE.exe itself. 7 CONCLUSIONS We have presented our approach towards teaching OS concepts based on the Windows family of operating systems. The authors suggest a physician s approach to investigating an OS: besides lecture materials discussing principles and concrete implementation details, lab and programming assignments are given to students, requiring them to experimentally evaluate certain hypothesis about the OS implementation and behavior. Student feedback from our Windows-based Operating Systems Architecture classes has been quite rewarding; understanding the inner-workings of the OS (almost) everybody uses has sparked considerable interest in OS-related projects and theses. With the freely available Curriculum Resource Kit (CRK) materials, it is relatively easy to add some Windows into existing OS courses. Supporting the CRK, ProjectOz, and other research initiatives, Microsoft has embarked on providing access to the core kernel source code for instruction and research projects. 8 REFERENCES [1] Mark E. Russinovich and David A. Solomon, Microsoft Windows Internals, 4th Edition, Microsoft Press, [2] David A. Solomon and Mark Russinovich: Windows OS Internals courses at [3] David A. Solomon, Mark E. Russinovich, Andreas Polze: CRK in Microsoft's Curriculum Repository at [4] Probert, Dave, Bruno, John, and Karaorman, Murat Space: A new approach to operating system abstraction. In Proc. of the Intl. WS on Object Orientation in OSes, Oct [5] Andreas Rasche, Marco Puhlmann and Andreas Polze; Dynamic Reconfiguration of Component-based Real-time Software in Proc. of WS on Object-oriented Dependable Real-time Systems (WORDS 2005), Feb [6] Wolfgang Schult and Andreas Polze; Aspect-Oriented Programming with C# and.net in Proc. of Intl. Symp. on Object-oriented Real-time distr. Comp. (ISORC) May [7] Probert, Dave Efficient Cross-domain Mechanisms for Building Kernel-less Operating Systems. Ph.D. Thesis, University of California, Santa Barbara,

Copyright Notice David A. Solomon and Mark Russinovich

Copyright Notice David A. Solomon and Mark Russinovich Unit OS4: Scheduling and Dispatch 4.6. Quiz Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Copyright Notice 2000-2005 David A. Solomon and Mark Russinovich

More information

Case Study. Windows XP. Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze

Case Study. Windows XP. Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Case Study Windows XP Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Background Architecture Windows Operating System Internals - by David A. Solomon

More information

Unit OS2: Operating System Principles. Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze

Unit OS2: Operating System Principles. Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS2: Operating System Principles 2.5. Quiz Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Copyright Notice 2000-2005 David A. Solomon and Mark

More information

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle Operating Systems Operating System Structure Lecture 2 Michael O Boyle 1 Overview Architecture impact User operating interaction User vs kernel Syscall Operating System structure Layers Examples 2 Lower-level

More information

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1 Windows 7 Overview Windows 7 Overview By Al Lake History Design Principles System Components Environmental Subsystems File system Networking Programmer Interface Lake 2 Objectives To explore the principles

More information

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 Overview Objective: To explore the principles upon which

More information

UNIVERSITY OF NEBRASKA AT OMAHA COURSE SYLLABUS/DESCRIPTION

UNIVERSITY OF NEBRASKA AT OMAHA COURSE SYLLABUS/DESCRIPTION UNIVERSITY OF NEBRASKA AT OMAHA COURSE SYLLABUS/DESCRIPTION Department and Course Number CSCI 4500 Course Title Operating Systems Course Coordinator Stanley Wileman Total Credits 3 Repeat for Credit? No

More information

Windows Kernel Internals II Overview University of Tokyo July 2004*

Windows Kernel Internals II Overview University of Tokyo July 2004* Windows Kernel Internals II Overview University of Tokyo July 2004* Dave Probert, Ph.D. Advanced Operating Systems Group Windows Core Operating Systems Division Microsoft Corporation Microsoft Corporation

More information

Operating System Architecture. CS3026 Operating Systems Lecture 03

Operating System Architecture. CS3026 Operating Systems Lecture 03 Operating System Architecture CS3026 Operating Systems Lecture 03 The Role of an Operating System Service provider Provide a set of services to system users Resource allocator Exploit the hardware resources

More information

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted

More information

ALL the assignments (A1, A2, A3) and Projects (P0, P1, P2) we have done so far.

ALL the assignments (A1, A2, A3) and Projects (P0, P1, P2) we have done so far. Midterm Exam Reviews ALL the assignments (A1, A2, A3) and Projects (P0, P1, P2) we have done so far. Particular attentions on the following: System call, system kernel Thread/process, thread vs process

More information

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4 Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell

More information

CPS221 Lecture: Operating System Functions

CPS221 Lecture: Operating System Functions CPS221 Lecture: Operating System Functions Objectives last revised 6/23/10 1. To overview key hardware concepts 2. To iintroduce the process concept 3. To discuss the various kinds of functionality of

More information

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. OS and Computer Architecture Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 Lecture 8 Threads and Scheduling Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ How many threads

More information

Computer System Overview

Computer System Overview Computer System Overview Introduction A computer system consists of hardware system programs application programs 2 Operating System Provides a set of services to system users (collection of service programs)

More information

OS DESIGN PATTERNS II. CS124 Operating Systems Fall , Lecture 4

OS DESIGN PATTERNS II. CS124 Operating Systems Fall , Lecture 4 OS DESIGN PATTERNS II CS124 Operating Systems Fall 2017-2018, Lecture 4 2 Last Time Began discussing general OS design patterns Simple structure (MS-DOS) Layered structure (The THE OS) Monolithic kernels

More information

Process Description and Control

Process Description and Control Process Description and Control 1 Process:the concept Process = a program in execution Example processes: OS kernel OS shell Program executing after compilation www-browser Process management by OS : Allocate

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 4, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

The Grid-Occam Project

The Grid-Occam Project I. Overview Project Title The Grid-Occam Project Contributors Names The Grid-Occam Project Andreas Polze, Peter Tröger, Martin von Löwis Abstract Occam is a parallel processing language designed by a team

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK II SEMESTER CP7204 Advanced Operating Systems Regulation 2013 Academic Year

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 Operating Systems Overview Chapter 2 Operating System A program that controls the execution of application programs An interface between the user and hardware Masks the details of the hardware Layers and

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - VII CPU Scheduling - II. Louisiana State University

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - VII CPU Scheduling - II. Louisiana State University CSC 4103 - Operating Systems Fall 2009 Lecture - VII CPU Scheduling - II Tevfik Ko!ar Louisiana State University September 14 th, 2009 1 Roadmap Multilevel Feedback Queues Estimating CPU bursts Project

More information

Roadmap. Multilevel Queue Scheduling. Multilevel Queue. Example of Multilevel Feedback Queue. Multilevel Feedback Queue. Tevfik Ko!

Roadmap. Multilevel Queue Scheduling. Multilevel Queue. Example of Multilevel Feedback Queue. Multilevel Feedback Queue. Tevfik Ko! CSC 4103 - Operating Systems Fall 2009 Lecture - VII CPU Scheduling - II Roadmap Multilevel Feedback Queues Estimating CPU bursts Project Discussion System Calls Virtual Machines Tevfik Ko!ar Louisiana

More information

Running on the Bare Metal with GeekOS

Running on the Bare Metal with GeekOS Running on the Bare Metal with GeekOS David Hovemeyer, Jeffrey K. Hollingsworth, and Bobby Bhattacharjee University of Maryland, College Park 1 Outline Motivation Overview Projects Classroom Experience

More information

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1 Distributed File Systems Issues NFS (Network File System) Naming and transparency (location transparency versus location independence) Host:local-name Attach remote directories (mount) Single global name

More information

A Comparison of Two Distributed Systems: Amoeba & Sprite. By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec.

A Comparison of Two Distributed Systems: Amoeba & Sprite. By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec. A Comparison of Two Distributed Systems: Amoeba & Sprite By: Fred Douglis, John K. Ousterhout, M. Frans Kaashock, Andrew Tanenbaum Dec. 1991 Introduction shift from time-sharing to multiple processors

More information

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation CSE 421/521 - Operating Systems Fall 2012 Lecture - II OS Structures Roadmap OS Design and Implementation Different Design Approaches Major OS Components!! Memory management! CPU Scheduling! I/O Management

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 8 Scheduling Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ POSIX: Portable Operating

More information

Process and Thread Management

Process and Thread Management Process and Thread Management Ausgewählte Betriebssysteme Professur Betriebssysteme Fakultät Informatik Data Structures Process Creation Thread Creation Scheduling Outline 2 1 Data Structures Process represented

More information

Overview of Operating Systems

Overview of Operating Systems Lecture Outline Overview of Operating Systems Instructor: Dr. Tongping Liu Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded

More information

Outline. Process and Thread Management. Data Structures (2) Data Structures. Kernel Process Block (PCB)

Outline. Process and Thread Management. Data Structures (2) Data Structures. Kernel Process Block (PCB) Outline Process and Thread Management Ausgewählte Betriebssysteme Professur Betriebssysteme Fakultät Informatik Data Structures Process Creation Thread Creation Scheduling 2 Data Structures Data Structures

More information

Operating Systems Overview

Operating Systems Overview Operating Systems Overview 1 operating system no clear traditional definition each definition cover a distinct aspect an interface between applications and hardware true, this was the first reason for

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Operating-System Structures

Operating-System Structures Operating-System Structures Chapter 2 Operating System Services One set provides functions that are helpful to the user: User interface Program execution I/O operations File-system manipulation Communications

More information

Operating Systems (ECS 150) Spring 2011

Operating Systems (ECS 150) Spring 2011 Operating Systems (ECS 150) Spring 2011 Raju Pandey Department of Computer Science University of California, Davis CA 95616 pandey@cs.ucdavis.edu http://www.cs.ucdavis.edu/~pandey Course Objectives After

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

CS3733: Operating Systems

CS3733: Operating Systems CS3733: Operating Systems Topics: Process (CPU) Scheduling (SGG 5.1-5.3, 6.7 and web notes) Instructor: Dr. Dakai Zhu 1 Updates and Q&A Homework-02: late submission allowed until Friday!! Submit on Blackboard

More information

Operating-System Structures

Operating-System Structures Recap Chapter 2: Operating-System Structures Presented By: Dr. El-Sayed M. El-Alfy Note: Most of the slides are compiled from the textbook and its complementary resources From: OS by Tanenbaum, 2008 March

More information

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Operating System Structures [SGG7] Chapter 2 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin

More information

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System Overview Chapter 1.5 1.9 A program that controls execution of applications The resource manager An interface between applications and hardware The extended machine 1 2 Structure of a Computer System Structure

More information

Overview of Operating Systems

Overview of Operating Systems Lecture Outline Overview of Operating Systems Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. 1 2 Lecture Outline Von Neumann Architecture 3 This describes

More information

Operating Systems. Process scheduling. Thomas Ropars.

Operating Systems. Process scheduling. Thomas Ropars. 1 Operating Systems Process scheduling Thomas Ropars thomas.ropars@univ-grenoble-alpes.fr 2018 References The content of these lectures is inspired by: The lecture notes of Renaud Lachaize. The lecture

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 10 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Chapter 6: CPU Scheduling Basic Concepts

More information

Module 1: Virtualization. Types of Interfaces

Module 1: Virtualization. Types of Interfaces Module 1: Virtualization Virtualization: extend or replace an existing interface to mimic the behavior of another system. Introduced in 1970s: run legacy software on newer mainframe hardware Handle platform

More information

CHAPTER 2: PROCESS MANAGEMENT

CHAPTER 2: PROCESS MANAGEMENT 1 CHAPTER 2: PROCESS MANAGEMENT Slides by: Ms. Shree Jaswal TOPICS TO BE COVERED Process description: Process, Process States, Process Control Block (PCB), Threads, Thread management. Process Scheduling:

More information

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester CSC 256/456: Operating Systems Introduction John Criswell! University of Rochester 1 Logistics 2 Course Instructors Instructor TA Name: John Criswell! Email: criswell@cs! Office: CSB 717! Office Hours:

More information

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering)

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) A. Multiple Choice Questions (60 questions) Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) Unit-I 1. What is operating system? a) collection of programs that manages hardware

More information

From last time. What is the maximum size of a file in bytes? What is the maximum total size of directories and files in a single disk partition?

From last time. What is the maximum size of a file in bytes? What is the maximum total size of directories and files in a single disk partition? OMP25111 Lecture 17 1/27 From last time A file system uses inodes which contain 8 block-numbers. These are for the first 7 blocks of the file and an indirect block, which just contains block-numbers for

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 General Info 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals General Info EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

Scheduling. Scheduling 1/51

Scheduling. Scheduling 1/51 Scheduling 1/51 Scheduler Scheduling Scheduler allocates cpu(s) to threads and processes. This action is known as scheduling. The scheduler is a part of the process manager code that handles scheduling.

More information

CPS221 Lecture: Operating System Protection

CPS221 Lecture: Operating System Protection Objectives CPS221 Lecture: Operating System Protection last revised 9/5/12 1. To explain the use of two CPU modes as the basis for protecting privileged instructions and memory 2. To introduce basic protection

More information

Windows History 2009 Windows 7 2

Windows History 2009 Windows 7 2 Example: Windows 1 Windows History 2009 Windows 7 2 Features added Windows2000 additions Plug-and-play Network directory service New GUI Vista additions New GUI More focus on security clean-up the code

More information

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University

CS 571 Operating Systems. Midterm Review. Angelos Stavrou, George Mason University CS 571 Operating Systems Midterm Review Angelos Stavrou, George Mason University Class Midterm: Grading 2 Grading Midterm: 25% Theory Part 60% (1h 30m) Programming Part 40% (1h) Theory Part (Closed Books):

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Operating System(16MCA24)

Operating System(16MCA24) PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore 560 100 Department of MCA COURSE INFORMATION SHEET Operating System(16MCA24) 1. GENERAL INFORMATION Academic Year: 2017 Semester(s):I

More information

Lecture 2 Process Management

Lecture 2 Process Management Lecture 2 Process Management Process Concept An operating system executes a variety of programs: Batch system jobs Time-shared systems user programs or tasks The terms job and process may be interchangeable

More information

CS307: Operating Systems

CS307: Operating Systems CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn

More information

Main Points of the Computer Organization and System Software Module

Main Points of the Computer Organization and System Software Module Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a

More information

NON SCHOLAE, SED VITAE

NON SCHOLAE, SED VITAE TDIU11 Operating systems Operating System Structures and Machines [SGG7/8] Chapter 2.7-2.8 [SGG9] Chapter 2.7, 1.11.6 Copyright Notice: The lecture notes are modifications of the slides accompanying the

More information

CPU Scheduling: Objectives

CPU Scheduling: Objectives CPU Scheduling: Objectives CPU scheduling, the basis for multiprogrammed operating systems CPU-scheduling algorithms Evaluation criteria for selecting a CPU-scheduling algorithm for a particular system

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole Course Overview Who am I? Jonathan Walpole Professor at PSU since 2004, OGI 1989 2004 Research Interests: Operating System Design, Parallel and Distributed

More information

CS307: Operating Systems

CS307: Operating Systems CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn

More information

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University Architectural Support for Operating Systems Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic services of OS Basic computer system

More information

LECTURE 3:CPU SCHEDULING

LECTURE 3:CPU SCHEDULING LECTURE 3:CPU SCHEDULING 1 Outline Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time CPU Scheduling Operating Systems Examples Algorithm Evaluation 2 Objectives

More information

Scheduling (Win 2K) CSE Computer Systems November 21, 2001

Scheduling (Win 2K) CSE Computer Systems November 21, 2001 Scheduling (Win 2K) CSE 410 - Computer Systems November 21, 2001 Reading Readings and References Chapter 6, Section 6.7.2, Operating System Concepts, Silberschatz, Galvin, and Gagne Other References Chapter

More information

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Effectiveness of parallel computing depends on the performance of the primitives used to express

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 1018 L10 Synchronization Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Development project: You

More information

Scheduling. Scheduling 1/51

Scheduling. Scheduling 1/51 Scheduling 1/51 Learning Objectives Scheduling To understand the role of a scheduler in an operating system To understand the scheduling mechanism To understand scheduling strategies such as non-preemptive

More information

Although Mac OS X is a relatively new operating system, its lineage is rather

Although Mac OS X is a relatively new operating system, its lineage is rather Preface Although Mac OS X is a relatively new operating system, its lineage is rather colorful, and the history of most of its components is much older. Mac OS X, and Apple in general, has attracted a

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year & Semester Section Subject Code Subject Name Degree & Branch : I & II : M.E : CP7204 : Advanced Operating Systems : M.E C.S.E. 1. Define Process? UNIT-1

More information

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009. CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar Louisiana State University August 27 th, 2009 1 Announcements TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu

More information

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009 CS211: Programming and Operating Systems Lecture 17: Threads and Scheduling Thursday, 05 Nov 2009 CS211 Lecture 17: Threads and Scheduling 1/22 Today 1 Introduction to threads Advantages of threads 2 User

More information

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009 CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu Announcements All of you should be now in the class mailing

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Introduction o Instructor of Section 002 Dr. Yue Cheng (web: cs.gmu.edu/~yuecheng) Email: yuecheng@gmu.edu Office: 5324 Engineering

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Sana a University,

More information

Midterm Exam. October 20th, Thursday NSC

Midterm Exam. October 20th, Thursday NSC CSE 421/521 - Operating Systems Fall 2011 Lecture - XIV Midterm Review Tevfik Koşar University at Buffalo October 18 th, 2011 1 Midterm Exam October 20th, Thursday 9:30am-10:50am @215 NSC Chapters included

More information

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 1 Operating Systems Overview 2 Chapter 2 3 An operating System: The interface between hardware and the user From the user s perspective: OS is a program that controls the execution of application programs

More information

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant. 24-vm.txt Mon Nov 21 22:13:36 2011 1 Notes on Virtual Machines 15-440, Fall 2011 Carnegie Mellon University Randal E. Bryant References: Tannenbaum, 3.2 Barham, et al., "Xen and the art of virtualization,"

More information

QUESTION BANK UNIT I

QUESTION BANK UNIT I QUESTION BANK Subject Name: Operating Systems UNIT I 1) Differentiate between tightly coupled systems and loosely coupled systems. 2) Define OS 3) What are the differences between Batch OS and Multiprogramming?

More information

Threads, SMP, and Microkernels. Chapter 4

Threads, SMP, and Microkernels. Chapter 4 Threads, SMP, and Microkernels Chapter 4 Processes Resource ownership - process is allocated a virtual address space to hold the process image Dispatched - process is an execution path through one or more

More information

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou (  Zhejiang University Operating Systems (Fall/Winter 2018) CPU Scheduling Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review Motivation to use threads

More information

Department of Computer applications. [Part I: Medium Answer Type Questions]

Department of Computer applications. [Part I: Medium Answer Type Questions] Department of Computer applications BBDNITM, Lucknow MCA 311: OPERATING SYSTEM [Part I: Medium Answer Type Questions] UNIT 1 Q1. What do you mean by an Operating System? What are the main functions of

More information

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input.

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input. Introduction & Ch1 Two Roles of an Operating System Extended Machine or virtual machine Device drivers, Processes, File systems, Networking protocols. Resource Manager Allocates and enforces Memory, Disk

More information

SNS COLLEGE OF ENGINEERING

SNS COLLEGE OF ENGINEERING SNS COLLEGE OF ENGINEERING Coimbatore. Department of Computer Science and Engineering Question Bank- Even Semester 2015-2016 CS6401 OPERATING SYSTEMS Unit-I OPERATING SYSTEMS OVERVIEW 1. Differentiate

More information

Module 23: Windows NT. Windows NT

Module 23: Windows NT. Windows NT Module 23: Windows NT History Design Principles System Components Environmental Subsystems File System Networking Programmer Interface Operating System Concepts 23.1 Silberschatz and Galvin c 1998 Windows

More information

Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved

Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved C5 Micro-Kernel: Real-Time Services for Embedded and Linux Systems Copyright 2003- Jaluna SA. All rights reserved. JL/TR-03-31.0.1 1 Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

Module 23: Windows NT

Module 23: Windows NT Module 23: Windows NT History Design Principles System Components Environmental Subsystems File System Networking Programmer Interface Operating System Concepts 23.1 Silberschatz and Galvin c 1998 Windows

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT I

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT I DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year and Semester : II / IV Subject Code : CS6401 Subject Name : Operating System Degree and Branch : B.E CSE UNIT I 1. Define system process 2. What is an

More information

The modularity requirement

The modularity requirement The modularity requirement The obvious complexity of an OS and the inherent difficulty of its design lead to quite a few problems: an OS is often not completed on time; It often comes with quite a few

More information

Process size is independent of the main memory present in the system.

Process size is independent of the main memory present in the system. Hardware control structure Two characteristics are key to paging and segmentation: 1. All memory references are logical addresses within a process which are dynamically converted into physical at run time.

More information

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information

Sistemas Operacionais I. Valeria Menezes Bastos

Sistemas Operacionais I. Valeria Menezes Bastos Sistemas Operacionais I Valeria Menezes Bastos Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Summary Basic Elements Evolution

More information