EEN521, Operating Systems, Autumn 2004
- From pre-requeisites: Be familiar with the general architecture of a CPU, its busses, and
memory components.
Required Topics
- Memory management:
- Hardware support:
- Base and Limit address translation
- Associative memory to map virtual addresses to physical addresses
- Dividing memory into pages, only mapping page numbers, not offsets
- Page faults and access violations
- Software support:
- Page tables in process control block
- Actions on receiving a page fault
- Hard page fault vs. soft page fault
- The page file; paging out vs. swapping out
- Page replacement strategies:
- Optimal, Least-Recently-Used, FIFO, etc.,
- Belady's anomaly
- Actions on process time quantum expiring (when timesharing)
- File Systems:
- Be familiar with physical structure of discs etc:
- Tracks, Sectors, Blocks, Cylinders, Surfaces,
- Rotational Latency, Track-to-track Seek time, estimating access times.
- File Structures:
- File formats (organising a set of blocks to make a file):
- Direct, n-Level-Index, Inodes, etc.
- Contents and purpose of header blocks
- Directories, file protection, ownership, etc.
- Disc Structures:
- Special "files": superblock, boot block, etc.
- Formatting a disc
- Free Block Allocation:
- FAT, Free-list, Inode-list.
- Clusters and Partitions
- Input/Output Subsystem:
- Levels of I/O calls (e.g. getchar(), read(), qio(), etc.)
- Support for "non blocking" i/o.
- Life of an Input/Output Request Packet (IRP)
- Activities of a Device Driver
- Disc Scheduling Strategies: FCFS, SSTF, Scan, etc.
- System-wide and Process Open File List: what and why.
- Processes:
- Representation in O.S.: PCBs, etc.
- Attributes: State, Status, Priority, Mode, IPL, Privileges
- Life Cycle of a process
- Meaning of status:
- Init, Current, Computable, Running, Stopped,
- Idle, Sleep, Disc wait, Page wait,
- Swapped out, Zombie
- Scheduler and Scheduler Queues
- In-Process management of memory:
- Separate code, static, heap, and stack areas
- Inter-Process Communications
- Problems caused by concurrent read & write access
- Critical Sections,
- Semaphores:
- What they do and how and where they are used,
- How they are implemented (atomic test and set, etc.)
- Shared Resources in general:
- Allocation problems (CR+LP example) and solutions.
- Dining Philosophers and correspondence with O.S. and solutions:
- Butler, Fork Boy, Fork Monster, Murderer.
Expansion Topics
- Networking
- Ethernet (the idea behind it).
- Addressing and Routing of packets
- IP addresses, structure and meaning, vs. Hardware addresses
- What routers do and how they do it.
- Address resolution: ARP, RARP, IP-Hardware address mapping
- The main layers: Hardware, IP, TCP, Application
- Their inter-relationships, how they work together
- Structure of packets (just generalities)
- Protocols: (don’t try to learn them, just understand them)
- Implementation (The structure of an internet client and
server)
- Encryption-based Security
- Why the common exclusive-or scheme is rubbish
- One-way hash functions: how they work, what they are good for
- One-time pads: how they work, why they are unbreakable
- DES (symmetric) and RSA (public key) and other tricks: just the
general ideas.
- The importance of selecting a long-enough key (i.e. possiblility
of cracking by trying every possible key)