Introduction to Computer Science CSCI 109 China Tianhe-2 Andrew - - PowerPoint PPT Presentation

introduction to computer science
SMART_READER_LITE
LIVE PREVIEW

Introduction to Computer Science CSCI 109 China Tianhe-2 Andrew - - PowerPoint PPT Presentation

Introduction to Computer Science CSCI 109 China Tianhe-2 Andrew Goodney Spring 2018 Lecture 8: Operating Systems March 5 th , 2018 Operating Systems Working Together 1 Schedule Date


slide-1
SLIDE 1

Introduction to Computer Science

CSCI 109

Andrew Goodney

Spring 2018

China – Tianhe-2

Lecture 8: Operating Systems March 5th, 2018

slide-2
SLIDE 2

ì

Operating Systems

Working Together

1

slide-3
SLIDE 3

Schedule

Date Topic Assigned Due Quizzes/Midterm/Final 8-Jan Introduction What is computing, how did computers come to be? HW1 15-Jan MLK Holiday 22-Jan Computer architecture How is a modern computer built? Basic architecture and assembly 29-Jan Data structures Why organize data? Basic structures for

  • rganizing data

HW1 Quiz 1 on material taught in class 1/8 and 1/22 30-Jan 5-Feb Data structures Trees, Graphs and Traversals HW2 12-Feb More Algorithms/Data Structures, Complexity and Combinatorics Recursion and run-time Quiz 2 on material taught in class 1/29, 2/5 19-Feb Presidents Day 23-Feb 26-Feb Algorithms and programming (Somewhat) More complicated algorithms and simple programming constructs, compilers HW2 Quiz 3 on material taught in class 2/12 5-Mar Operating systems What is an OS? Why do you need one? HW3 Quiz 4 on material taught in class 2/26 12-Mar Spring Break 19-Mar Midterm Midterm Midterm on all material taught so far. 26-Mar Computer networks How are networks organized? How is the Internet organized? HW3 2-Apr Artificial intelligence What is AI? Search, plannning and a quick introduction to machine learning HW4 Quiz 5 on material taught in class 3/26 6-Apr 9-Apr The limits of computation What can (and can't) be computed? Quiz 6 on material taught in class 4/2 16-Apr Robotics Robotics: background and modern systems (e.g., self-driving cars) HW4 Quiz 7 on material taught in class 4/9 23-Apr Summary, recap, review Summary, recap, review for final Quiz 8 on material taught in class 4/16 4-May Final on all material covered in the semester Final exam 11 am - 1 pm in SAL 101 Last day to drop a Monday-only class without a mark of “W” and receive a refund or change to Pass/No Pass or Audit for Session 001 Last day to drop a course without a mark of “W” on the transcript Last day to drop a class with a mark of “W” for Session 001

2

slide-4
SLIDE 4

Agenda

u Talk about operating systems u Review quizzes 1-3 (midterm studying) u Take quiz 4

3

slide-5
SLIDE 5

Operating Systems

uWhat is an OS? uThe kernel, processes and

resources

uProtection/Isolation/Security uCompeting for time uCompeting for space

4

Reading:

  • St. Amant Ch. 6
slide-6
SLIDE 6

The need for an OS

5

CPU, Memory, Disk, I/O Program Problem Solution: Algorithm + Data Structures Pseudocode Low-level instructions Executes on Compiles to

slide-7
SLIDE 7

The OS as a executive manager

6

CPU, Memory, Disk, I/O Program Problems Solution: Algorithms + Data Structures Pseudocode Low-level instructions Executions managed by Compile to Low-level instructions Low-level instructions Program Program Program Operating System

slide-8
SLIDE 8

What is an Operating System?

uAn executive manager for the computer uManages resources

vSpace (i.e. memory) vTime (i.e. CPU compute time) vPeripherals (i.e. input and output)

uOS is a program that starts, runs, pauses,

restarts, and ends other programs

u (some content from the following slides is courtesy of Mark Redekopp and CS350)

7

slide-9
SLIDE 9

8

Definition

  • A piece of software that

manages a computer’s resources

  • What resources need

managing?

– CPU (threads and processes) – Memory (Virtual memory, protection) – I/O (Abstraction, interrupts, protection)

DISK Processor Mem. Management Unit Network Graphics I/O Drivers & Protocols File Systems Memory Translation Processes & Scheduling System Library System Library User App User App

Kernel Mode Hardware User mode

slide-10
SLIDE 10

Examples of Operating Systems

u Microsoft Family

v MSDOS, Windows 3.1 – 98, WindowsNT -> Windows 10 v Predominately x86 (Intel) hardware, some PowerPC, some ARM v FreeDOS

u POSIX (UNIX/like)

v macOS, FreeBSD, openBSD, netBSD, Solaris, AIX, and others

u Run on most processor architectures

v iOS v Linux

u Little side project of university student u ”UNIX clone” that won the war u 20+ popular distributions u Android: heavily customized Linux and Java on phone/tablet

u Others

v PlaystationOS, VxWorks

9

slide-11
SLIDE 11

10

slide-12
SLIDE 12

11

slide-13
SLIDE 13

Important Vocabulary

u Resource

v Some part of the computer that programs use:

u Memory, CPU, Input/Output devices

u Policy

v Rules enforced by algorithms that share access to resources

u OS Developers (humans) write policies that achieve some set

  • f goals for the operating systems

12

slide-14
SLIDE 14

What does an Operating System do?

uA bare computer is just hardware uPrograms are written to use that hardware, but

exclusive use is inefficient

uIn simple terms, the OS:

v Enables more than one program at a time to use

the computer hardware

v Present computer resources (CPU, disk, I/O)

through abstract interfaces to allow sharing

v Enforce policies to manage/regulate the sharing of

resources

13

slide-15
SLIDE 15

Roles

14

  • Referee

– Protection against other applications – Enforce fair resource sharing

  • Why doesn't an infinite loop require a reboot?
  • Illusionist (Virtualization)

– Each program thinks it is running separately – Each program thinks it has full access to computer's resources (or unlimited resources)

  • Glue

– Common services (such as copy/paste) – Files can be read by any application – UI routines for look & feel – Separate applications from hardware

  • so you don’t need to know which keyboard, disk drive, etc
slide-16
SLIDE 16

OS Design Criteria

u Reliability (and availability) u Security & Privacy u Performance u Portability

15

slide-17
SLIDE 17

Reliability and Availably

u Reliable systems work properly

v Correct (or expected) outputs are generated for a set of inputs v If this is not the case, the system has failed

u Examples?

u Available systems are available to do work u Available does not imply reliable

v System can be available but not reliable (system has bugs, generates

wrong results)

v System can be reliable but not available

u Crash every 5 minutes, but saves results and restarts 5 minutes later 16

slide-18
SLIDE 18

Privacy, Security, Isolation

u For an OS security means the OS does not run unintended

code or get into a compromised state

v No virus/malware

u OS privacy means programs should not get access to data

they should not have

v Password keychains, files in other users directories

u Security and Privacy require some tradeoffs with

performance, which is why OS’s are not 100% secure

v Some are better than others!

17

slide-19
SLIDE 19

Portability

u Many machine types exist: x86, x86_64, PPC, ARM, MIPS u Many different motherboards or hardware platforms exist:

server with 8 CPUs 12 PCIe slots to RaspberryPi, to AppleTV, etc.

u OS with good portability abstracts these differences into a

stable API so programmers don’t notice

u Also, can the OS itself be ported to new hardware easily? u Good portability leads to wide adoption

v Linux, Windows

18

slide-20
SLIDE 20

Performance

u What does performance mean?

v Lots of computation? v Fluid GUI for game? v Low latency disk for database?

u OS balances these with policies

v Major axis is throughput vs. response time v Different OS’s are tuned based on use case v DB server has different policies than Windows gaming rig

19

slide-21
SLIDE 21

Examples of Policies

uTasks are given priorities; higher priority

tasks are handled first

uSome kind of tasks are never interrupted uAll tasks are equal priority; round-robin uSome tasks can only use part of a disk uSome tasks can use network

20

slide-22
SLIDE 22

The kernel

uThe kernel is the core of an OS uKernel coordinates other programs uWhen the computer starts up the kernel is

copied from the disk to the memory

uKernel runs until some other program

needs to use the CPU

uKernel pauses itself to run other program

21

slide-23
SLIDE 23

How memory is used

22

Free Memory Free Memory Kernel Free Memory Executing Program Kernel Free Memory Kernel

Start Kernel loaded User program runs User program done

slide-24
SLIDE 24

Multitasking

uOne program uses the CPU at a time uOS switches CPU usage (rapidly) uCreates an illusion that all the programs are running

at the same time

uChangeover from one program to another is called a

context switch

uExamples of context switching? uCan context switching be good for a program? uCan context switching be good for a CPU?

23

slide-25
SLIDE 25

Abstractions: Processes and Resources

uResources

v Space (memory) v Time (CPU) v Peripherals (printers etc.)

uProcess: an executing

program

v Program counter v Contents of registers v Allocated memory &

contents

24

uOS doesn’t worry

about what each program does

uInstead OS cares about

v What resources does a

process need?

v How long will it run? v How important is it?

slide-26
SLIDE 26

Protection/Isolation

uOther processes have to be prevented from writing to

the memory used by the kernel

uCrash in one program shouldn’t crash OS or other

programs

uOS has access to all resources: privileged mode uUser programs have restricted access: user mode uWhen a user program needs access to protected

resources it makes a system call (e.g., managing files, accessing a printer)

uPrinciple of least privilege (kernel has highest

privilege)

25

slide-27
SLIDE 27

Competing for time

uThink of the time the CPU spends in chunks or

blocks

uHow can blocks of time be allocated to different

processes so that work can be done efficiently?

uPolicy: rules to enforce process prioritization

26

slide-28
SLIDE 28

Process Scheduling Policies

uThe process queue uRound-robin uFirst-come, first-served uPriority-based

v Preset priority for each process v Shortest-remaining-time

uAll these policies keep the CPU busy uAre there other ways to judge a policy?

27

slide-29
SLIDE 29

Keeping CPU busy

28

slide-30
SLIDE 30

How to evaluate a policy?

CPU utilization Throughput Latency Fairness Round-robin Good Variable Potentially high Yes No starvation First-come first- served Good Variable Yes Shortest remaining time Good High Potentially high No Could have starvation Fixed priority Good

29

u Utilization: how much work the CPU does u Throughput: # of processes that use the CPU in a certain time u Latency: average amount of time that processes have to wait before running u Fairness: every process gets a chance to use the CPU

slide-31
SLIDE 31

Everyday policies

uPlanes taking off: first come first served

v High efficiency for the runway v If several smaller planes in line before a large one, not

efficient for the average passenger

uTraffic being directed at accident: round robin

v First traffic in one direction, then another v If a police car arrives, then switch to priority-based v Unlikely to ever be shortest remaining time

30

slide-32
SLIDE 32

First-come, first serve (non-pre-emptive)

31

slide-33
SLIDE 33

Round Robin (pre-emptive)

32

slide-34
SLIDE 34

Weighted Round Robin

33

slide-35
SLIDE 35

Shortest-time Remaining

34

slide-36
SLIDE 36

Competing for space

u Unlike time, space can be

reused

u When a process is

running, it is allocated a single region of memory

u When a process finishes

running, the memory allocated to it is given back to the OS

u Fragmentation

35

Kernel A B C D E Kernel A D

slide-37
SLIDE 37

Dealing with fragmentation

u Move memory allocation around all the time in the

background so when a new process needs memory, there is a large enough contiguous block to allocate

u Indirection

v Physical memory ordering: memory divided into fixed size

blocks called frames

v Logical memory ordering: in logical memory each frame

corresponds to a page (a renumbered frame)

v When a process uses memory assigned to it, it uses logical

addresses; the OS translates logical memory locations to physical memory locations

36

slide-38
SLIDE 38

Virtual memory

uUse indirection to pretend RAM is bigger than it is uDemand paging

v When a process starts, the OS doesn’t allocate it all the memory

it needs

v Instead only allocate memory needed to do immediate work v Keep rest of the requested memory in secondary storage (disk) v If a page in memory isn’t used for a while, it’s moved to disk v When a page is needed by a process, it’s copied from disk to RAM

u Other examples of virtualization: virtual environments

(render on demand), half-court basketball, etc.

37

slide-39
SLIDE 39

The need for an OS

38

CPU, Memory, Disk, I/O Program Problem Solution: Algorithm + Data Structures Pseudocode Low-level instructions Executes on Compiles to

slide-40
SLIDE 40

The OS as a executive manager

39

CPU, Memory, Disk, I/O Program Problems Solution: Algorithms + Data Structures Pseudocode Low-level instructions Executions managed by Compile to Low-level instructions Low-level instructions Program Program Program Operating System

slide-41
SLIDE 41

Quiz #4

40

http://bit.ly/2FdlyCD