1 / 15

Operating Systems 2 - overview

Operating Systems 2 - overview. PIETER HARTEL. Operating System. Resource manager Hardware resources Resources provided by the OS itself (which?) Objectives Convenience (why?) Efficiency (why?) Evolvability (why?) Abstraction is the key to managing the complexity. History. Batch

devika
Download Presentation

Operating Systems 2 - overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating Systems 2 - overview PIETER HARTEL

  2. Operating System • Resource manager • Hardware resources • Resources provided by the OS itself (which?) • Objectives • Convenience (why?) • Efficiency (why?) • Evolvability (why?) • Abstraction is the key to managing the complexity

  3. History • Batch • Time sharing • Real-time • Multi-processor • Distributed systems • Multi-core (why?) Electrologica X8 console, 1965

  4. Concepts and abstractions Concept • Processes & Threads • Memory management • Protection and security • Scheduling and resource management Abstraction of • Processor • Physical memory & disks • Dedicated computer • Dedicated computer

  5. Abstraction layers

  6. Linux example of the Unix API #include <stdio.h> int main(intargc, char *argv[]) { inti; for(i=0; I < argc; i++) { printf("%s ", argv[i]); } printf("(%d)\n", argc); return 0; } • Output? • gccEcho.c • ./a.out Hello world • strace ./a.out Hello World

  7. Process abstraction

  8. Resource sharing (why?) • Deadlock (why?) • Prevention • Detection • Recovery • Avoidance

  9. Process management • Scheduling • Timer • Threads (why?) Which process is running?

  10. Address space management • Output? • gccAddressSpace.c • ./a.out low extern char etext, edata, end; int a = 0xaaaa, b; intmain(intargc, char * argv[]) { int c = 0xcccc; int *d_ptr = (int*) malloc(sizeof(int)); int *e_ptr = (int*) alloca(sizeof(int)); b = 0xbbbb; *d_ptr = 0xdddd; *e_ptr = 0xeeee; printf("%p:a=%0x\n", &a, a); … } heap stack high

  11. Memory management • Paging (why?) • MMU! • Swapping (why?)

  12. Protection and Security • Processes vs the OS (how?) • Processes vs other Processes (how?) • Privileged processes (why?) • Access control matrix

  13. #include <stdio.h> #include <unistd.h> #define N 41 int main(intargc, char * argv[]) { if(argc >= 3) { FILE *from = fopen(argv[1], "r"); FILE *to = fopen(argv[2], "w"); char buf[N]; while (fgets(buf,N,from) != NULL) { fputs(buf,to); fputc('\n',to); } fclose(from); fclose(to); return 0; } else { printf("usage %s from to\n", argv[0]); return 1; } } I/O management • Output? • gcc Wrap.c • strace ./a.out Wrap.c junk • Find the system calls for: • fgets() • fputs()

  14. Virtual Machine management • Examples?

  15. Summary • Operating systems are large, hence abstraction to manage complexity: • Processes and threads • Memory • Files and peripherals • User accounts • Management issues • Fairness • Sharing • Protection

More Related