Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 14 Epilogue: A Look Back at the Journey ©Copyright 2008 Umakishore Ramachandran and William D. Leahy Jr. 14.1 Processor Design • High-level language (HLL) constructs play a key role in instruction set design and related architectural features of processor HLL Construct/Feature Architectural features Expressions Arithmetic/logic instructions, addressing modes Data types Different operand granularity, multiple precision arithmetic and logic instructions Conditional statements, loops Conditional and unconditional branch instructions Procedure call/return Stack, link register System calls, error conditions Traps, exceptions Efficient execution of HLL programs (expressions, parameter passing, etc.) General Purpose Registers 14.1 Processor Design • For a given instruction set architecture there are still choices to be made for implementation – Pipelining and other design features for speed – Low cost designs where performance is less important than speed 14.2 Process • The process is a convenient abstraction for remembering all relevant details of a running program • A uniprocessor can run only one program at a time • The OS gives the illusion of each process having its own processor to run on • The architecture provides mechanisms, namely, trap and interrupt, for taking control back from the currently running program to make a scheduling decision using one of several algorithms • Reviewed data structures needed by OS for implementing such algorithms. • Trap mechanism also allows a user level program to avail itself of system provided utilities (such as file systems and print capability) to enhance functionality of the program, via system calls. • The models we provided are more simplistic than those used in real OS's. 14.3 Virtual Memory System and Memory Management • Memory system is crucial to performance of processor and provides memory allocation, protection and isolation, sharing, and efficient memory utilization using items such as – Fence register – Bounds registers – Base and limit registers – Paging 14.3 Virtual Memory System and Memory Management • Need kernel mode to allow OS to setup areas in memory for processes to use • Need item such as page replacement policies and working set maintenance for effficency • Operating system must be quick…provide resources and then get out of the way • Sophisticated memory management schemes require little additional hardware 14.4 Memory Hierarchy • Related to memory systems is memory hierarchy. • Caching systems are designed to take advantage of temporal and spatial locality. • Caching is used everywhere. – – – – – Registers TLB Multilevel memory caches Web caches etc 14.5 Parallel Systems • Parallelism is fundamental to human thinking and therefore to algorithms and programs • Exploiting parallelism has been a goal since the early days of computing • Currently multicore processors are a major are of interest • Key to a computer scientist is understanding the principles involved. Some examples – Atomic read-modify-write primitive – Cache coherence in a multiprocessor 14.6 Input/Output Systems • A computer system is useless unless it can interact with the outside world. Key concepts – Programmed I/O – DMA – Interrupts – Memory mapped I/O – Device drivers – Disk – Network 14.7 Persistent Storage • Key topics include – File systems – Allocation strategies – Naming and aliasing schemes – Attributes – Scheduling 14.8 Network • Key hardware concepts – – – – NIC Repeater/Hub Bridge/Switch Router • Key software concepts – – – – – – Protocol stacks Checksums Windowing Sequence numbers Scatter/gather of packets End to end acknowledgement 14.9 Concluding Remarks • Overall, the field of system architecture, the meeting point between hardware and software is an intriguing and fascinating area. • This area is unlikely to dry up for a long time since the application of computing in everyday life is growing by leaps and bounds. • To keep pace with this growth in demand, the system architect has to continuously innovate and produce new computing machines that are faster, cheaper, consume less power, and offer more services. • We hope this textbook serves as a launching pad for future system architects.