introduction it344 fall 2012 9/21/2015 1. today’s agenda administrivia course overview course...

39
INTRODUCTION IT344 Fall 2012 06/27/22 1

Upload: edwina-thompson

Post on 29-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

INTRODUCTIONIT344 Fall 2012

04/19/23 1

Page 2: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Today’s agenda• Administrivia

• course overview• course staff• general structure• the text• policies• your to-do list

• OS overview• functional

• resource management, etc.

• historical• batch systems, multiprogramming, timeshared OS’s, PCs, networked

computers, p2p, embedded systems

04/19/23 2

Page 3: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Course overview• Everything you need to know is on the course web page:

http://www.et.byu.edu/groups/it344/12fa/IT344.html

• DISCLAIMER: It is work in progress and will change daily. So please check for updates often.

04/19/23 3

Page 4: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

• But to tide you over for the next hour …• course staff

• Chia-Chi Teng• HW TA: Kim Burrup• Lab TA: Reed Kleinman

• general structure• read the text prior to class

• class will supplement rather than regurgitate the text

• homework exercises provide added impetus to keep up with the reading• we really want to encourage discussion, both in class and in lab

04/19/23 4

Page 5: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

• the text• Dhananjay M. Dhamdhere, “Operating Systems, A Concept-Based

Approach”, first edition• Keep up with the reading schedule

• How to read technical textbook?

• other resources• many online: check for updates often

• some required• some optional• some prohibited (!)

• policies• collaboration vs. cheating• homework exercises• late policy

04/19/23 5

Page 6: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

• Projects: two this semester, more information to come1. Mobile device application

2. Service oriented architecture (SOA)

• your to-do list …• please read the entire course web thoroughly, today• make sure you’re on the IT344 LearningSuite email list, and check

your email daily• keep up with the reading• homework 1 (reading + problems) is posted on the web now

• reading due Thursday before class• problems due at EOB Monday (except next week)

• lab 1 is posted on the web now• Do you have a USB drive or partition on your laptop that you can use to install

Linux?

04/19/23 6

Page 7: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

HW & Labs• HW

• Turn in BOTH paper and electronic copy.• Paper copy to locker CTB 3059• E-copy to LearningSuite

• Labs• Pass-off required for every lab• Submit write-up electronically to LearningSuite• Points for pass-off and write-up

04/19/23 7

Page 8: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Lab1• Build Linux Kernel

• Download source code• Compile/link -> binary• Warm up with C and debugger

• Why C?

04/19/23 8

Page 9: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Project #1• Objective: get familiar with the embedded OS environment by

developing a simple application on a mobile device SDK• Platform of choice

• Google Android SDK• Apple iPhone SDK• Microsoft Windows Phone or Mobile SDK• …

• Develop a simple application of your choice• Be creative• SDKs have sample applications• Grading guideline

• C: Text-box + button UI• B: More complex UI with advanced controls such as slider, combo-box, gyro, GPS …• A: Multi-page application plus (B)

• Start now, presentation during lab hours around week #6• More …

04/19/23 9

Page 10: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Project #1 -> #2• New requirement for project #1

• Must connect to some remote service• Lots of BYU services to use: directory, class schedule, …• Free services: webservicex.net, twitter, facebook, …

• Project #2• Service oriented architecture (SOA)• Build a web service with REST API• Client integration• 3-tier system

• Client, Web Service, Data Source

04/19/23 10

Page 11: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Exams• 1 midterm + final• Usually take home, open book

04/19/23 11

Page 12: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is an Operating System?• The text:

• “Exploits the hardware resources of one or more processors”• “Provides a set of services to system users”• “Manages secondary memory and I/O devices”• “an amazing aspect of operating systems is how varied they are in

accomplishing these tasks … mainframe operating systems … personal computer operating systems … operating systems for handheld computers …”

• “in 1998, the United States Department of Justice filed suit against Microsoft, in essence claiming that Microsoft included too much functionality in its operating system … for example, a web browser was an integral part of the operating system”

04/19/23 12

Page 13: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is an Operating System?• An operating system (OS) is:

• a software layer to abstract away and manage details of hardware resources

• a set of utilities to simplify application development

• “all the code you didn’t write” in order to implement your application

04/19/23 13

Applications

OS

Hardware

Page 14: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is Windows?

04/19/23 14

DOS

Application

© John DeTreville, Microsoft Corp.

Page 15: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is Windows?

04/19/23 15

DOS Windows

Installer

COM

Printing

TCP/IPBrowser

…File system

……

Application

Application

© John DeTreville, Microsoft Corp.

Page 16: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is .NET?

04/19/23 16

Internet

Application

© John DeTreville, Microsoft Corp.

Page 17: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

What is .NET?

04/19/23 17

magicmagic

Internet .NET

Deviceindependence

XML

Identity& security

AsynchronyExtensibility

……

Application

eBay FedExBank

© John DeTreville, Microsoft Corp.

Page 18: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

The OS and hardware• An OS mediates programs’ access to hardware

resources (sharing and protection)• computation (CPU)• volatile storage (memory) and persistent storage (disk, etc.)• network communications (TCP/IP stacks, Ethernet cards, etc.)• input/output devices (keyboard, display, sound card, etc.)

• The OS abstracts hardware into logical resources and well-defined interfaces to those resources (ease of use)• processes (CPU, memory)• files (disk)• sockets (network)

04/19/23 18

Page 19: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Why bother with an OS?• Application benefits

• programming simplicity• see high-level abstractions (files) instead of low-level hardware

details (device registers)• abstractions are reusable across many programs

• portability (across machine configurations or architectures)• device independence: 3com NIC or Intel NIC?

• User benefits• safety

• program “sees” own virtual machine, thinks it owns computer• OS protects programs from each other• OS fairly multiplexes resources across programs

• efficiency (cost and speed)• share one (or many) computer(s) across many users• concurrent execution of multiple programs

04/19/23 19

Page 20: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

The major OS issues• structure: how is the OS organized?• sharing: how are resources shared across users?• naming: how are resources named (by users or programs)?• security: how is the integrity of the OS and its resources ensured?• protection: how is one user/program protected from another?• performance: how do we make it all go fast?• reliability: what happens if something goes wrong (either with

hardware or with a program)?• extensibility: can we add new features?• communication: how do programs exchange information, including

across a network?

04/19/23 20

Page 21: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

More OS issues…• concurrency: how are parallel activities (computation and I/O)

created and controlled?• scale: what happens as demands or resources increase?• persistence: how do you make data last longer than program

executions?• distribution: how do multiple computers interact with each

other?• accounting: how do we keep track of resource usage, and

perhaps charge for it?

There are tradeoffs, not right and wrong!

04/19/23 21

Page 22: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

04/19/23 22

Progression of concepts and form factors

© Silberschatz, Galvin and Gagne

Page 23: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Multiple trends at work• “Ontogeny recapitulates phylogeny”

• Ernst Haeckel (1834-1919)• (“always quotable, even when wrong”)

• “Those who cannot remember the past are condemned to repeat it”• George Santayana (1863-1952)

04/19/23 23

Page 24: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Has it all been discovered?• New challenges constantly arise

• embedded computing (e.g., iPod, smartphones)• sensor networks (very low power, memory, etc.)• peer-to-peer systems• ad hoc networking• multi-core• scalable server farm design and management (e.g., Google, Amazon)• software for utilizing huge clusters (e.g., MapReduce, Bigtable)• overlay networks (e.g., PlanetLab)• worm fingerprinting• finding bugs in system code (e.g., model checking)

• Old problems constantly re-define themselves• the evolution of PCs recapitulated the evolution of minicomputers, which

had recapitulated the evolution of mainframes• but the ubiquity of PCs re-defined the issues in protection and security

04/19/23 24

Page 25: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Protection and security as an example• OS from my program• your program from my program• my program from my program• access by intruding individuals• access by intruding programs• denial of service• distributed denial of service• spoofing• spam• worms• Viruses• botnet• stuff you download and run knowingly (bugs, trojan horses)• stuff you download and run obliviously (cookies, spyware)

04/19/23 25

Page 26: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

OS history• In the very beginning…

• OS was just a library of code that you linked into your program; programs were loaded in their entirety into memory, and executed

• interfaces were literally switches and blinking lights

• And then came batch systems• OS was stored in a portion of primary memory• OS loaded the next job into memory from the card reader

• job gets executed• output is printed, including a dump of memory• repeat…

• card readers and line printers were very slow• so CPU was idle much of the time (wastes $$)

04/19/23 26

Page 27: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Spooling• Disks were much faster than card readers and printers• Spool (Simultaneous Peripheral Operations On-Line)

• while one job is executing, spool next job from card reader onto disk• slow card reader I/O is overlapped with CPU

• can even spool multiple programs onto disk• OS must choose which to run next• job scheduling

• but, CPU still idle when a program interacts with a peripheral during execution

• buffering, double-buffering

04/19/23 27

Page 28: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Multiprogramming• To increase system utilization, multiprogramming OSs

were invented• keeps multiple runnable jobs loaded in memory at once• overlaps I/O of a job with computing of another

• while one job waits for I/O completion, OS runs instructions from another job

• to benefit, need asynchronous I/O devices• need some way to know when devices are done

• interrupts• polling

• goal: optimize system throughput• perhaps at the cost of response time…

04/19/23 28

Page 29: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Timesharing• To support interactive use, create a timesharing OS:

• multiple terminals into one machine• each user has illusion of entire machine to him/herself• optimize response time, perhaps at the cost of throughput

• Timeslicing• divide CPU equally among the users• if job is truly interactive (e.g., editor), then can jump between

programs and users faster than users can generate load• permits users to interactively view, edit, debug running

programs (why does this matter?)

04/19/23 29

Page 30: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

• MIT CTSS system (operational 1961) was among the first timesharing systems• only one user memory-resident at a time (32KB memory!)

• MIT Multics system (operational 1968) was the first large timeshared system• nearly all OS concepts can be traced back to Multics!• “second system syndrome”

• Fredrick Brooks “Mythical man-month” 1975

04/19/23 30

Page 31: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

• CTSS as an illustration of architectural and OS functionality requirements

04/19/23 31

OS

User program

Page 32: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Parallel systems• Some applications can be written as multiple parallel

threads or processes• can speed up the execution by running multiple threads/processes

simultaneously on multiple CPUs [Burroughs D825, 1962]• need OS and language primitives for dividing program into multiple

parallel activities• need OS primitives for fast communication among activities

• degree of speedup dictated by communication/computation ratio• many flavors of parallel computers today

• Multi-core• SMPs (symmetric multi-processors)• MPPs (massively parallel processors)• NOWs (networks of workstations)• computational grid (SETI @home)

04/19/23 32

Page 33: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Personal computing• Primary goal was to enable new kinds of applications• Bit mapped display [Xerox Alto,1973]

• new classes of applications• new input device (the mouse)

• Move computing near the display• why?

• Window systems• the display as a managed resource

• Local area networks [Ethernet]• why?

• Effect on OS?

04/19/23 33

Page 34: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Distributed OS• Distributed systems to facilitate use of geographically

distributed resources• workstations on a LAN• servers across the Internet

• Supports communications between programs• interprocess communication

• message passing, shared memory

• networking stacks

• Sharing of distributed resources (hardware, software)• load balancing, authentication and access control, …

• Speedup isn’t the issue• access to diversity of resources is goal

04/19/23 34

Page 35: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Client/server computing• Mail server/service• File server/service• Print server/service• Compute server/service• Game server/service• Music server/service• Web server/service• etc.

04/19/23 35

Page 36: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Peer-to-peer (p2p) systems• Napster• Gnutella (LimeWire)

• example technical challenge: self-organizing overlay network

• technical advantage of Gnutella?

• er … legal advantage of Gnutella?

04/19/23 36

Data source: Digital Music News Research Group

Page 37: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Embedded/mobile/pervasive computing

• Pervasive computing• cheap processors embedded everywhere• how many are on your body now? in your car?• cell phones, PDAs, network computers, …

• Typically very constrained hardware resources• slow processors• very small amount of memory (e.g., 8 MB)• no disk• typically only one dedicated application• limited power

• But this is changing rapidly!

04/19/23 37

Page 38: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

Ad hoc networking

04/19/23 38

Page 39: INTRODUCTION IT344 Fall 2012 9/21/2015 1. Today’s agenda Administrivia course overview course staff general structure the text policies your to-do list

IT 344• In this class we will learn:

• what are the major components of most OS’s?• how are the components structured?• what are the most important (common?) interfaces?• what policies are typically used in an OS?• what algorithms are used to implement policies?

• Philosophy• you may not ever build an OS• but as a computer engineer you need to understand the foundations

• most importantly, operating systems exemplify the sorts of engineering design tradeoffs that you’ll need to make throughout your careers – compromises among and within cost, performance, functionality, complexity, schedule …

04/19/23 39