0% found this document useful (0 votes)
99 views15 pages

Operating System Design Principles and Practices

This document discusses various topics related to operating system design including interface design, implementation, performance, project management, and trends. It covers paradigms like algorithmic and event-driven code, implementation with layered designs, naming with directories, static versus dynamic structures like process tables, hiding hardware dependencies, space-time tradeoffs through different counting techniques, caching structures, software team structures, and the role of experience in design.

Uploaded by

maged abbass
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views15 pages

Operating System Design Principles and Practices

This document discusses various topics related to operating system design including interface design, implementation, performance, project management, and trends. It covers paradigms like algorithmic and event-driven code, implementation with layered designs, naming with directories, static versus dynamic structures like process tables, hiding hardware dependencies, space-time tradeoffs through different counting techniques, caching structures, software team structures, and the role of experience in design.

Uploaded by

maged abbass
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Chapter 12

Operating System Design


12.1 The nature of the design problem
12.2 Interface design
12.3 Implementation
12.4 Performance
12.5 Project management
12.6 Prends in operating system design

1
Paradigms (1)

Algorithmic code
2
Paradigms (2)

Event-driven code
3
Implementation
Layer

One possible design for a modern layered operating system


4
Naming

Directories are used to map external names


onto internal names 5
Static Versus Dynamic Structures

Code for searching the process table for a given PID.

Searching a static table for a pid


6
Hiding the Hardware (1)

CPU-dependent conditional compilation


7
Hiding the Hardware (2)

Word-length dependent conditional compilation


8
Space-Time Trade-offs (1)

A procedure for counting bits in a byte

(a)

A procedure to count the 1 bits in a byte


9
Space-Time Trade-offs (2)

• A macro to count the bits


• A macro to access bit count in a table

(b) Macro to count the bytes


(c) Macro to look up the count

10
Space-Time Trade-offs (3)

(a) Part of an uncompressed image with 24 bits per pixel


(b) Same part compressed with GIF, 8 bits per pixel
(c) The color palate 11
Caching

Part of an i-node cache


12
Software team Structure

Mills’ proposal for populating a 10-person chief programmer team

13
The Role of Experience (1)

Traditional software design progresses in stages


14
The Role of Experience (2)

• Alternative design produces a working system


– that does nothing starting on day 1
15

You might also like