45
Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 • History of windows 2000 • Programming windows 2000 • System structure • Processes and threads in windows 2000 • Memory management • Input/output in windows 2000 • The windows 2000 file system • Security in windows 2000 Caching in windows 2000

Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Embed Size (px)

Citation preview

Page 1: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-1

Chapter 11 : Case Study - Win 2000

• History of windows 2000 • Programming windows 2000 • System structure • Processes and threads in windows 2000• Memory management • Input/output in windows 2000 • The windows 2000 file system • Security in windows 2000 • Caching in windows 2000

Page 2: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-2

Windows 2000 (1)

Different versions of Windows 2000

Page 3: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-3

Windows 2000 (2)

Comparison of some operating system sizes

Page 4: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-4

The Win32 Application Programming Interface

The Win32 API allows programs to run on almost all versions of Windows

Page 5: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-5

The Registry (1)

• Top level keys and selected subkeys• Capitalization has no meaning but follows Microsoft

practice.

Page 6: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-6

The Registry (2)

Some of the Win32 API calls for using the registry

Page 7: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-7

The Operating System Structure

• Structure of Windows 2000 (slightly simplified).• Shaded area is executed• Boxes, D, are device drivers• Service processes are system daemons

Page 8: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-8

Hardware Abstraction Layer

Some of the hardware functions the HAL manages

Page 9: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-9

Implementation of Objects (1)

The structure of an object

Page 10: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-10

Implementation of Objects (2)

Some common executive object types managed by the object manager

Page 11: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-11

Implementation of Objects (3)

The relationship between handle tables, objects and type objects

Page 12: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-12

The Object Name Space

Some typical directories in the object name space

Page 13: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-13

Environment Subsystems (1)

Various routes taken to implement Win32 API function calls

Page 14: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-14

Environmental Subsystems (2)

• Some key windows 2000 files– mode they run in– number of exported function calls– main contents of each file

• Calls in win32k.sys not formally exported– not called directly

Page 15: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-15

Processes and Threads (1)

Basic concepts used for CPU and resource management

Page 16: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-16

Processes and Threads (2)

Relationship between jobs, processes, threads, and fibers

Page 17: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-17

Job, Process, Thread & Fiber Mgmt. API Calls

Some of Win32 calls for managing processes, threads and fibers

Page 18: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-18

Scheduling (1)

Mapping of Win32 priorities to Windows 2000 priorities

Page 19: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-19

Scheduling (2)

Windows 2000 supports 32 priorities for threads

Page 20: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-20

An example of priority inversion

Scheduling (3)

Page 21: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-21

MS-DOS Emulation

How old MS-DOS programs are run under Windows 2000

Page 22: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-22

Booting Windows 2000

• Processes starting up during boot phase• Those above the line are always started• Those below are examples of services which could be started

Page 23: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-23

Fundamental Concepts (1)

• Virtual address space layout for 3 user processes• White areas are private per process• Shaded areas are shared among all processes

Page 24: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-24

Fundamental Concepts (2)

• Mapped regions with their shadow pages on disk• The lib.dll file is mapped into two address spaces

at same time

Page 25: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-25

Memory Management System Calls

The principal Win32 API functions for mapping virtual memory in Windows 2000

Page 26: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-26

Implementation of Memory Management

A page table entry for a mapped page on the Pentium

Page 27: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-27

Physical Memory Management (1)

The various page lists and the transitions between them

Page 28: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-28

Physical Memory Management (2)

Some of the major fields in the page frame data base for a valid page

Page 29: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-29

Input/Output API Calls

Categories of Win32 API calls

Page 30: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-30

Device Drivers

Windows 2000 allows drivers to be stacked

Page 31: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-31

File System API Calls in Windows 2000 (1)

• Principle Win32 API functions for file I/O

• Second column gives nearest UNIX equivalent

Page 32: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-32

File System API Calls in Windows 2000 (2)

A program fragment for copying a file using the Windows 2000 API functions

Page 33: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-33

File System API Calls in Windows 2000 (3)

• Principle Win32 API functions for directory management• Second column gives nearest UNIX equivalent, when one exists

Page 34: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-34

File System Structure (1)

The NTFS master file table

Page 35: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-35

File System Structure (2)

The attributes used in MFT records

Page 36: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-36

File System Structure (3)

An MFT record for a three-run, nine-block file

Page 37: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-37

File System Structure (4)

A file that requires three MFT records to store its runs

Page 38: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-38

File System Structure (5)

The MFT record for a small directory.

Page 39: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-39

File Name Lookup

Steps in looking up the file C:mariaweb.htm

Page 40: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-40

File Compression

(a) An example of a 48-block file being compressed to 32 blocks(b) The MTF record for the file after compression

Page 41: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-41

File Encryption

Operation of the encrypting file system

K retrieved

user's public key

Page 42: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-42

Security in Windows 2000

Structure of an access token

Page 43: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-43

Security API Calls (1)

Example security descriptor for a file

Page 44: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-44

Security API Calls (2)

Principal Win32 API functions for security

Page 45: Ceng 334 - Operating Systems 11-1 Chapter 11 : Case Study - Win 2000 History of windows 2000 Programming windows 2000 System structure Processes and threads

Ceng 334 - Operating Systems 11-45

Caching in Windows 2000

The path through the cache to the hardware