1 CSC 539: Operating Systems Structure and Design Spring 2005 Influential operating systems  Atlas, CTSS, MULTICS, IBM OS/360, UNIX, Alto, Mach Case studies.

Slides:



Advertisements
Similar presentations
Operating System.
Advertisements

Operating System Structures
MACHINE-INDEPENDENT VIRTUAL MEMORY MANAGEMENT FOR PAGED UNIPROCESSOR AND MULTIPROCESSOR ARCHITECTURES R. Rashid, A. Tevanian, M. Young, D. Golub, R. Baron,
Memory Management All data in memory before and after processing
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Case study 1 Windows 7.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Windows XP 1 © Silbershatz, Galvin, Gagne CS502 Spring 2006 Windows XP CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 22.
CMPT 300: Operating Systems Review THIS REIVEW SHOULD NOT BE USED AS PREDICTORS OF THE ACTUAL QUESTIONS APPEARING ON THE FINAL EXAM.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
CS-3013 & CS-502, Summer 2006 Windows XP1 CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 22.
Computer Forensics Principles and Practices by Volonino, Anzaldua, and Godwin Chapter 6: Operating Systems and Data Transmission Basics for Digital Investigations.
Computer Organization and Architecture
OPERATING SYSTEMS Introduction
Virtual Memory Deung young, Moon ELEC 5200/6200 Computer Architecture and Design Lectured by Dr. V. Agrawal Lectured by Dr. V.
Lecture 1: Introduction CS170 Spring 2015 Chapter 1, the text book. T. Yang.
1 CSC 539: Operating Systems Structure and Design Spring 2006 Influential operating systems  Atlas, CTSS, MULTICS, IBM OS/360, UNIX, Alto, Mach Case studies.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Chapter 3 Memory Management: Virtual Memory
Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.
Operating System. Architecture of Computer System Hardware Operating System (OS) Programming Language (e.g. PASCAL) Application Programs (e.g. WORD, EXCEL)
21.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 21: The Linux System Linux History Design Principles Kernel.
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Windows XP. History Windows XP is based on the NT kernel developed in 1988 Windows XP is based on the NT kernel developed in 1988 XP was originally sold.
INFO 320 Server Technology I Week 1 Server operating system and hardware concepts 1INFO 320 week 1.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
Chapter 1 : The Linux System Part 1 Lecture 1 10/21/
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
OSes: 3. OS Structs 1 Operating Systems v Objectives –summarise OSes from several perspectives Certificate Program in Software Development CSE-TC and CSIM,
Virtual Memory Virtual Memory is created to solve difficult memory management problems Data fragmentation in physical memory: Reuses blocks of memory.
Scott Ferguson Section 1
Linux Overview COMS W4118 Spring Slides based on Phil Hutto, Silberschatz 2 History Linux is a modern, free operating system based on UNIX standards.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
The UNIX Time-sharing system
UNIX & Windows NT Name: Jing Bai ID: Date:8/28/00.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Agenda UNX122_022_w1_p3 Overview of UNIX
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Concepts and Structures. Main difficulties with OS design synchronization ensure a program waiting for an I/O device receives the signal mutual exclusion.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 4.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
The Linux System.
Computer System Structures
Operating System & Application Software
Chapter 2: The Linux System Part 4
The Mach System Sri Ramkrishna.
Operating System Structure
10CS53 Operating Systems Unit VIII Engineered for Tomorrow
Chapter 3: Windows7 Part 1.
OS Organization.
Chapter 2: System Structures
10CS53 Operating Systems Unit VIII Engineered for Tomorrow
Chapter 2: The Linux System Part 1
Operating Systems.
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems Lecture 1.
OS Organization.
Outline Operating System Organization Operating System Examples
Section 1: Linux Basics and SLES9 Installation
Operating Systems Structure
COMP755 Advanced Operating Systems
Components of a Linux System
Presentation transcript:

1 CSC 539: Operating Systems Structure and Design Spring 2005 Influential operating systems  Atlas, CTSS, MULTICS, IBM OS/360, UNIX, Alto, Mach Case studies  Linux  Windows XP Course overview

2 Influential operating systems Atlas (1961), University of Manchester  batch system with spooling (uses disk as buffer for reading ahead or storing output)  introduced many OS features: device drivers, demand paging, reference bit CTSS (1962), MIT  first practical timesharing system, supported up to 32 users at terminals  CPU scheduling involved priorities, multilevel feedback queue to age programs  swapped entire program out to fast drum MULTICS (1965), MIT (+ GE + Bell Labs)  designed as a general-purpose extension to CTSS (~300,000 lines of code)  utilized paged segments, multilevel feedback queue  hierarchical directory structure, protection via access lists  not fully functional until 1969 OS/360 (1966), IBM  designed as a common OS for all IBM computers  reduced development & maintenance costs, allowed migration of users & programs  suffered from bloated code, too many complex & interleaved features

3 Influential operating systems OS/360 (1966), IBM  designed as a common OS for all IBM computers  reduced development & maintenance costs, allowed migration of users & programs  since Mach (1986), CMU  built upon the BSD UNIX kernel  goals: emulate BSD, support memory models & parallel/distributed, microkernel  provided support for multiprocessing, threads  versions of Mach underlie the NeXT OS, Mac OS X UNIX (1972), Bell Labs  first portable OS, written entirely in C (developed by Thompson & Ritchie)  open source for academic use, led to BSD UNIX & other variants Alto (1978), Xerox PARC  introduced modern GUI interface, WIMP  viewed by Jobs, co-opted for Apple Mac OS (and eventually Windows)

4 Linux history Linux is a modern, free operating system based on UNIX standards  first developed as a small but self-contained kernel in 1991 by Linus Torvalds, with the major design goal of UNIX compatibility.  its history has been one of collaboration by many users from all around the world, corresponding almost exclusively over the Internet  it has been designed to run efficiently and reliably on common PC hardware, but also runs on a variety of other platforms (68000-series, Sun SPARC, PowerMac, …) Linux kernel is original, but full system incorporates existing UNIX software  uses many tools developed as part of Berkeley’s BSD operating system, MIT’s X Window System, and the Free Software Foundation's GNU project  Linux kernel is distributed under the GNU General Public License (GPL) : free to modify code but cannot make proprietary; also must distribute source code  many companies (e.g., SUSE, Slackware, Red Hat, Debian/GNU) market Linux distributions : precompiled Linux packages with installation and management utilities

5 Linux design principles Linux is a multiuser, multitasking system with UNIX-compatible tools  its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model  main design goals are speed, efficiency, and standardization  Linux is designed to be compliant with the relevant POSIX documents like most UNIX implementations, Linux is composed of 3 main bodies of code: 1.system utilities perform individual specialized management tasks 2.system libraries define standard set of functions through which apps interact with the kernel 3.kernel is responsible for maintaining the important abstractions of the OS executes in unrestricted kernel mode all kernel code & data in one address space

6 Process management UNIX process management separates the creation/execution of processes  fork system call creates a new process, inherits environment from parent  a new program is run after a call to execve  a thread is a process that happens to share the same address spaces as its parent (uses clone system call instead of execve ) a request for kernel-mode execution can occur in 2 ways 1.program can request OS service (e.g., system call, page fault) 2.device driver may deliver hardware interrupt that triggers interrupt handler  starting with Linux 2.6, kernel is fully preemptible  provides spinlocks and semaphores for synchronization utilizes 2 different process scheduling algorithms  time-sharing algorithm for preemptive scheduling between multiple processes priority based, gives high priority jobs longer time quanta, dynamic priorities  real-time algorithm for tasks where priorities are more important than fairness within priority classes, can use FIFO or round-robin

7 Memory management Linux’s physical memory-management system deals with allocating and freeing pages, groups of pages, and small blocks of memory  has additional mechanisms for handling virtual memory, memory mapped into the address space of running processes page allocator allocates & frees all physical pages  uses buddy-heap algorithm to keep track of physical pages  each allocatable memory region is paired with an adjacent partner  whenever buddies are both freed, are combined  large region may be divided for smaller requests memory allocations in the kernel occur either statically (drivers reserve contiguous space during system boot) or dynamically (via page allocator)

8 Virtual memory the VM system maintains the address space visible to each process  creates pages of virtual memory on demand, and manages the loading of those pages from disk or their swapping back out to disk as required the VM manager maintains 2 separate views of a process’s address space:  a logical view describing instructions concerning the layout of the address space (address space consists of a set of nonoverlapping regions, each representing a continuous, page-aligned subset of the address space)  a physical view of each address space which is stored in hardware page tables page replacement algorithm is modified version of second-chance  each page has age associated with it, measures amount of recent activity  in effect, implements Least Frequently Used (LFU) approximation of LRU

9 File & I/O management to the user, Linux’s file system appears as a hierarchical directory tree  internally, the kernel hides implementation details and manages the multiple different file systems via an abstraction layer -- the virtual file system (VFS).  the Linux VFS is designed around object-oriented principles and is composed of two components: 1.a set of definitions that define what a file object is allowed to look like (inode- object and file-object structures represent individual files) 2.a layer of software to manipulate those objects Linux device drivers appear as objects within the file system  block devices allow random access to independent, fixed size blocks of data  character devices include most other devices; don’t need to support the functionality of regular files.  network devices are interfaced via the kernel’s networking subsystem

10 Windows XP history & goals Microsoft Windows XP is a 32/64-bit preemptive multitasking OS  successor of Windows NT/2000, replaces Windows 95/98  released in October 2001, server version in 2002  introduced "better" visual design, simpler menus, easier HCI  multiuser support through multiple instances of GUI via Windows terminal server design goals  security: strict adherence to design standards, extensive code review & testing utilizes sophisticated automatic analysis tools to identify security vulnerabilities  reliability: most reliable, stable version of Windows extensive manual and automatic code review, driver verification & error-checking  compatibility: introduces compatibility layer to ensure execution of older software also provides POSIX support, so can compile and run most UNIX software  performance: uses a variety of techniques to build on performance of 2000/NT  extensibility: uses a layered architecture to allow for changes/updates  portability: mostly written in C/C++ CPU-dependent code isolated in hardware-abstraction layer (HAL)  international support: uses UNICODE, provides support for local languages/formats

11 XP layered architecture hardware abstraction layer (HAL) hides hardware differences from the OS kernel provides the foundation for the executive and the subsystems executive provides services, including process manager, VM manager, I/O manager environmental subsystems are user-mode processes that enable XP to run processes developed for other OS's (Win32 is base)

12 Process management a process is an executing instance of an application a thread is a unit of code that can be scheduled by the OS like NT/2000, XP uses a 32-level priority scheme to determine the order of thread execution  real-time class contains threads with priorities ranging from 16 to 32  variable class contains threads having priorities from 0 to 15  kernel automatically adjusts priorities based on CPU utilization enables I/O-bound threads to keep the I/O devices busy CPU-bound threads soak up the spare CPU cycles in the background

13 Memory management the VM manager assumes that the underlying hardware supports:  virtual to physical mapping a paging mechanism  transparent cache coherence on multiprocessor systems, and  virtual addressing aliasing VM manager uses  a page-based management scheme with a page size of 4 KB  multilevel page table, utilizes TLB  uses per-process FIFO replacement policy  adjusts number of frames per process by monitoring working-set  performs prefetching to try to swap in pages before needed  for performance, allows privileged process to lock select pages in physical memory

14 File & I/O management utilizes the NT File System (NTFS)  provides many modern features: data recovery, fault tolerance, large files, UNICODE names, encryption, compression, …  a file in NTFS is a structured object consisting of attributes (not a simple byte stream, as in MS-DOS or UNIX)  a directory is stored in a B+ tree structure to provide consistent access time  NT supports FAT16 to read floppies, FAT32 for Windows 95/98 media I/O manager is responsible for file systems, cache management, device drivers, network drivers  keeps track of which installable file systems are loaded, and manages buffers for I/O requests.  works with VM Manager to provide memory-mapped file I/O.  controls the 2000 cache manager, which handles caching for the entire I/O system.

15 FINAL EXAM Tuesday, May 310:00 – 11:40 format similar to previous tests  factual knowledge: TRUE/FALSE  conceptual understanding: short answer, discussion  synthesis and application: process scheduling, paging, C++ simulation, … study advice  review online lecture notes  review text  reference other sources for examples, different perspectives  look over tests, homeworks, quizzes, online review sheetonline review sheet