History History (cont.) (Timeline from www.cgonline.com)

10/81 — IBM PC (“Personal ”) 10/88 — OS/2 1.1 (Windows-like GUI, end and PC-DOS 1.0 of collaboration when IBM gets upset with for improving Windows) 3/83 — Microsoft MS-DOS 2.0 (hard disk, ) 5/90 — Windows 3.0 (big success!)

11/83 — Windows announced (vaporware!) 4/92 — Windows 3.1 (bug fixes etc.)

11/84 — MS-DOS 3.1 10/92 — Windows for Workgroups 3.1 (adds networking, but fails in market) 11/85 — Windows 1.0 (tiled windows, doesn’t do well in market) 5/93 — Windows NT 3.1 (visually like Windows 3.1, but stable 32-bit platform) 4/87 — IBM & Microsoft OS/2 1.0 (next generation, DOS-like lines) 11/93 — Windows for Workgroups 3.11 (precursor to ) 12/87 — Windows/386 (uses 80386’s to allow safe “preemptive” 5/94 — MS-DOS 6.22 (DOS final version) multitasking) 9/94 — Windows NT 3.5 6/95 — Windows NT 3.51 (faster) 1 Fall 2002, Lecture 38 2 Fall 2002, Lecture 38

History (cont.) What is Windows XP?

8/95 — Windows 95 (originally Windows I 32/64 -bit preemptive multitasking 4.0) (long file names, plug and play for AMD K6/7, hardware, and , IA32/64 and later microprocessors HUGE success in market!) ● Replaces Windows 95/98/Me as well as Windows NT/200 7/96 — Windows NT 4.0 (Windows 95 GUI, first successful version of NT) I Key goals

6/98 — (Windows 95 + ● security, reliability, ease of use 4.0, success in market) ● Windows and POSIX compliance ● high performance, extensibility 2/00 — (Windows NT 4.0 + plug and play, DirectX, USB, etc.) ● portability, international support

9/00 — Windows Me (Millennium Edition) I Various versions: XP Personal, XP (Windows 98 + IE 5.0, media support, Professional, XP last version in line) I Uses a micro-kernel architecture 9/01 — Windows XP (combines Windows ● Subsystems to provide OS personalities 2000 and ME, but based on NT/2000) for Win32, POSIX, etc.

3 Fall 2002, Lecture 38 4 Fall 2002, Lecture 38 Windows XP Design Principles Windows XP Design Principles (cont.)

I Security — C-2 classification (moderal I Extensibility — layered architecture level of protection) ● Executive, which runs in kernel mode, provides the basic system services I Reliability — builds on reliability of Windows 2000, extensive testing ● On top of the executive, several server subsystems operate in user mode I Compatibility — code that follows the I Among the subsystems are environmental subsystems, which emulate other OSs to POSIX standard can be complied on run programs written for MS-DOS, 2000 without change, compatibility layer Windows, and POSIX allows older applications to run ● Support for remote procedure calls for distributed processing I Performance — knows about cache lines and multiprocesors, high-performance I Portability — Windows XP can be moved message passing (local procedure calls) from one Intel-like hardware architecture between subsystems to another with few changes

I International support — supports ● Processor-dependent code is isolated in different locales via the national a dynamic link library (DLL) called the language support (NLS) API, characters “ layer” (HAL) represented in

5 Fall 2002, Lecture 38 6 Fall 2002, Lecture 38

Windows 2000/XP Block Diagram Windows XP Organization

I Micro-kernel based system

I In protected (kernel mode): ● Executive — object management, management, virtual , local procedure calls, plug and play I/O, and security ● (Micro) Kernel — never paged out of memory, never preempted, does scheduling, synchronization, ; ● Hardware Abstraction Layer (HAL) — hides hardware differences from upper layers; supports multiprocessors

I In user mode: ● environmental subsystems (support code written for different platforms) ● other non-kernel parts of OS ● user programs

7 Fall 2002, Lecture 38 8 Fall 2002, Lecture 38 Windows XP Kernel Windows XP Executive

I Thread scheduling, & exception I handling, processor synchronization ● Objects for all services and entities

I Events, threads, semaphores, interrupts, ● Standard methods of access etc. are all objects ● Security provided via access control list

I Threads have 6 states I Virtual Memory Manager ● Ready, standby, running, terminated ● Demand paging with a size of 4 KB I Standby is next one to run (more than one ● if multiple processors) 32-bit virtual address => 4 GB space I Each process has a page directory that ● Waiting — I/O wait contains 1024 page directory entries ● Transition — waiting for resources (PDEs) of size 4 I Each PDE points to a page table which contains 1024 page table entries (PTEs) I CPU scheduler with 32-level priority of size 4 bytes feedback queues divided into 2 classes I Each PTE points to a 4 KB page frame in ● real-time (16-31), variable (0-15) physical memory ● Priority lowered as thread runs, ● Per-process page replacement aging depends on device for which a I Working set starts at 50 pages per thread has been waiting process, is adjusted as processes run

9 Fall 2002, Lecture 38 10 Fall 2002, Lecture 38

Windows XP Executive (cont.) Windows XP Environmental Systems

I Process Manager I User-mode processes allow programs developed for other OSs to run ● Services for creating, deleting, and using threads and processes I Win32 subsystem is the main operating I Local Procedure Call Facilty environment and is used to start all processes ● Passes requests and results between client and server processes within a ● Also provides all the keyboard, mouse single machine (optimized RPC) and graphical display capabilities

I I/O Manager I Virtual DOS Machine (VDM) supports DOS applications ● Responsible for file system, device drivers, network drivers ● Translates 16-bit DOS addresses to 32- bit Windows addresses, emulates MS- I Cache Manger DOS BIOS, Intel 486 instructions (if Windows is running on a different ● Centralized cache management architecture), etc.

I Security Reference Manager I POSIX subsystem ● Checks access to objects against the ● Runs applications that follow the POSIX.1 object’s access control list standard (based on the UNIX model)

11 Fall 2002, Lecture 38 12 Fall 2002, Lecture 38 Windows XP File System (NT File System = NTFS)

I Files are treated as objects

I File volumes are based on logical disk partitions, and can span disks if desired

I NTFS uses clusters (not sectors) as the underlying unit of disk allocation ● A cluster is a number of disk sectors that is a power of two (4 KB for volumes greater than 4 GB) ● Because the cluster size is smaller than for the 16-bit FAT file system, the amount of internal fragmentation is reduced

I All file system data structure updates are performed inside transactions, to keep file system consistent after a ● Before a data structure is altered, the transaction writes a log record that contains redo and undo information

13 Fall 2002, Lecture 38