Computer Systems Architecture CMT603 Operating Systems


Published on

1 Comment
1 Like
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • I will set some example exercises to do in class and own time. There are many more books in the library.
  • Pyramid (1/2/2/2) What does it do? Hence a neat definition. (5) at any one time thewre are
  • In the introductory lectures we saw that machine code was executed on the hard ware, Then we learned of the instruction set, (risc and cisc) The takes machine code and partially interprets it for the ISA. And also controls the access to the lower levels of the computer hierarchy.
  • Computer Systems Architecture CMT603 Operating Systems

    1. 1. Computer Systems Architecture CMT603 Operating Systems Ian Cooper [email_address]
    2. 2. Plan for This session <ul><li>Introduce myself </li></ul><ul><li>Talk about the style of the lectures </li></ul><ul><li>Brief introduction to Operating Systems </li></ul><ul><li>Cover a few basic concepts. </li></ul>
    3. 3. Ian Cooper <ul><li>MSc Computing </li></ul><ul><li>Writing up PhD </li></ul><ul><li>Nortel </li></ul><ul><li>Holliday group / iTouch </li></ul><ul><li>Allied Telesyn Research </li></ul><ul><li>BEng </li></ul><ul><li>Electronics </li></ul>
    4. 4. The Course Info <ul><li>INTERACTIVE!!!!! </li></ul><ul><li>11 hours + 1 revision lecture </li></ul><ul><li>Example Exercises </li></ul><ul><li>Reading </li></ul><ul><ul><li>Modern Operating Systems (second edition). Andrew S. Tanenbaum. Prentice Hall, 2001. </li></ul></ul><ul><ul><li>Operating System Concepts. Seventh edition. Silberschatz Galvin, Addison-Wesley, 2005. </li></ul></ul><ul><li>INTERACTIVE!!!!! </li></ul>
    5. 5. Examples of Operating Systems. What is an operating system? Windows 95 Windows XP Windows Vista Unix MS-DOS Acorn MOS Mac OS OSX Linux Android (open handset alliance) Symbian Windows Mobile
    6. 6. What is an operating system? <ul><li>What does it do? </li></ul><ul><ul><ul><li>Process Management </li></ul></ul></ul><ul><ul><ul><li>Memory management </li></ul></ul></ul><ul><ul><ul><li>I/O management </li></ul></ul></ul><ul><ul><ul><li>Support functions </li></ul></ul></ul><ul><ul><ul><li>Networking </li></ul></ul></ul><ul><ul><ul><li>User interface </li></ul></ul></ul><ul><ul><ul><li>Security </li></ul></ul></ul>
    7. 7. Where does it fit in? Implementation Application Instruction Level Program Operating System Micro architecture Instruction Set Architecture
    8. 8. Operating System Goals <ul><li>Efficiency </li></ul><ul><li>Throughput </li></ul><ul><li>Functionality </li></ul><ul><li>Robustness </li></ul><ul><li>Extensibility </li></ul><ul><li>Portability </li></ul><ul><li>Security </li></ul><ul><li>Interactivity </li></ul>
    9. 9. Course Contents. <ul><li>Introduction </li></ul><ul><li>Processes and Threads </li></ul><ul><li>Scheduling </li></ul><ul><li>Critical Section Algorithms </li></ul><ul><li>Semaphores </li></ul><ul><li>Memory </li></ul><ul><ul><li>Contiguous memory.. Fixed/Variable partition </li></ul></ul><ul><ul><li>Non Contiguous memory.. Paging/Segmentation </li></ul></ul><ul><ul><li>Virtual memory </li></ul></ul><ul><li>File Systems </li></ul>
    10. 10. Concepts <ul><li>Architectures of Operating Systems </li></ul><ul><ul><li>Monolithic </li></ul></ul><ul><ul><li>Layered </li></ul></ul><ul><ul><li>Kernel </li></ul></ul><ul><ul><li>Microkernel </li></ul></ul><ul><ul><li>Virtual Machines </li></ul></ul><ul><li>Increasing Efficiency </li></ul><ul><ul><li>Multi program </li></ul></ul><ul><ul><li>Multi User </li></ul></ul>
    11. 11. Monolithic Architecture <ul><li>Monolithic Architecture—the early operating systems </li></ul><ul><ul><li>Every component is contained in the kernel, can directly communicate with other components </li></ul></ul>
    12. 12. Monolithic Architecture Computer Hardware OS Layer User Space Applications System Calls
    13. 13. Monolithic Architecture <ul><li>Pros </li></ul><ul><ul><li>Highly efficient – by direct intercommunication between components </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>difficult to develop </li></ul></ul><ul><ul><li>difficult to isolate the source of bugs and other errors </li></ul></ul><ul><ul><ul><li>particularly susceptible to damage from malicious code </li></ul></ul></ul>
    14. 14. Layered Architecture <ul><li>Layered OS structure: </li></ul><ul><ul><li>Group components that perform similar functions into layers. Each layer communicates only with neighbour layer </li></ul></ul>Computer Hardware Kernel Space User Space Layer 3 Layer 2 Layer 1 Layer 0
    15. 15. Layered Architecture <ul><li>Pros </li></ul><ul><ul><li>It provides good modularity – helps simplify the development of an OS </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>Less efficient </li></ul></ul><ul><ul><li>Complex design – each functionality has to be divided into parts to fit into different layers. </li></ul></ul>
    16. 16. Kernel Based Architecture <ul><li>It separates the machine-independent parts from the machine-dependent parts </li></ul><ul><ul><li>Kernel is machine-dependent. It contains the basic component of OS. </li></ul></ul>Computer Hardware Operating System User Space OS Kernel
    17. 17. Kernel Based Architecture <ul><li>Pros </li></ul><ul><ul><li>Better portability—Kernel encloses all the machine-dependent code </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>Suffers similar problem as in layered OSs </li></ul></ul>
    18. 18. Microkernel Based Architecture <ul><li>As OS expanded, the kernel became large and difficult to manage </li></ul><ul><ul><li>Microkernel approach removes all nonessential components from the kernel and implementing them as system and user-level programs. </li></ul></ul><ul><ul><ul><li>Result: A smaller kernel </li></ul></ul></ul>
    19. 19. Microkernel Based Architecture Computer Hardware Operating System User Space Microkernel
    20. 20. Microkernel Based Architecture <ul><li>Pros </li></ul><ul><ul><li>Enhance portability, extensibility, reliability and security </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>Less efficient—increased system function overhead </li></ul></ul>
    21. 21. Virtual Machines <ul><li>Can create the illusion that there are more than one separate machines. </li></ul>Computer Hardware Virtual machine implementation Kernel User Space VM1 Kernel User Space VM1 User Space Host Operating System
    22. 22. Increasing Efficiency <ul><li>Multiprogramming </li></ul><ul><ul><li>Try to Keep the CPU busy </li></ul></ul><ul><ul><li>CPU operations take less time than I/O </li></ul></ul><ul><ul><li>When a process waits for I/O operation, OS swaps to another process. </li></ul></ul>Operating System Job 1 Job 2 Job 3
    23. 23. Multi User <ul><ul><li>Logical extension of Multiprogramming </li></ul></ul>
    24. 24. Summary <ul><li>What an Operating System does </li></ul><ul><li>Where an Operating System fits in </li></ul><ul><li>How an Operating System works </li></ul><ul><li>Architectures of Operating Systems </li></ul><ul><li>Multi [user, program] </li></ul>
    25. 25. Question … (to think about, you don’t have to go and research this. ( yet) ) <ul><li>If the OS is a multiprogramming OS, and the OS chooses a job for execution, this job will be active in the CPU. This means that (in a single processor computer) the OS is not running. </li></ul><ul><li>How does the OS retain control over the computer resources in order to swap the jobs??? </li></ul>