CS代考 IBM 402 from 1948

Professor G. Sandoval

 Concurrency: threads, locks, deadlocks, race conditions.

Copyright By PowCoder代写 加微信 powcoder

 Resource Management
 Perf Analysis and Contention Resolution: queuing, CPU
Scheduling, prioritization
 Interfaces and Hiding Complexity: sockets, file systems,
address spaces.
 Dealing with Big Software

 Understand operating system design and implementation
 Confidence with C and Assembly language.  Confidence with Github

 We will use CampusWire for questions  You will be invited shortly

 Homework will consist of programming projects and questions from class
 Each project will be done individually
 Homework assignments must be submitted at the latest
when they are due.
 You may submit multiple times as long as it’s before the
 We have an automatic grader that will give you feedback
on realtime.

 Based on both Homeworks and Lectures  Study Guide

 Zoom: nyu.zoom.us/my/Sandoval
 Student hours:
▪ Will post times on CampusWire
▪ Email if you are coming so I make sure to be there.
 If these times don’t work for you, email me
and we can set up a time to meet.
 I am also pretty responsive on email during
core hours M-F(9 – 5)
 Use CampusWire
 TA student hours will be posted on Piazza

 Throughout the semester we will be studying the source code of a UNIX-like operating system, xv6
 The authors of xv6 have written a short (100 page) book about its implementation, which accompanies the source code. You *SHOULD* read it.
 This has been posted on NYU Classes in the Resources section

 Operating Systems: Three Easy Pieces
 Free online at http://pages.cs.wisc.ed u/~remzi/OSTEP/

 To complement lectures We will be using Modern Operating Systems, by . Tanenbaum
 Ebook/PDF and international editions of the book are also fine.
 A PDF Copy has been posted on NYU Classes

 The homework will require you to write code in C
 If you have worked with C++; C is in most respects a subset of C++
 However, you may find that you need to understand the language in greater depth than you have before
 We will review C during class and a recitation
 If you have never programmed or never coded
in C you will have trouble with this class and you might FAIL.

 Many of the programming assignments will involve modifying the xv6 OS to add new features or change how it works
 You will need to use a UNIX-like operating system (Linux or OS X) to build and run the xv6 OS
 We will run the xv6 operating system inside a PC emulator called QEMU, which will also need to be installed

▪ The command line
▪ The gcc compiler
▪ The gdb/VsCode debugger ▪ QEMU, a PC emulator
▪ Git and github

 We have a virtual machine in the cloud to make the setup easier.
 We will give you the instructions

 Due 2 weeks after release
▪ Get you comfortable with the command line ▪ Get you comfortable with C
▪ Give you an idea of the difficulty of the class

 30% Homework (Programming Projects)  30% Midterm (Take home)
30%Final (takehome)
 10% Participation (Poll Anywhere)

 Fridays will post times on campuswire

 Review now and it’s in NYU Classes

 The Jacquard Loom.
 Invented by in
 Used punched cards to describe patterns to weave
 We’ll see such cards again…

 Jacquard Loom could even be used to weave portraits
 This one took 24,000 punch cards to specify
 A picture is worth 1,000 words, or 24,000 punch cards

 The Analytical Engine: designed by . (1837)
 Intended to be able to carry out arbitrary computations
 Never completed (lack of funding)
 Contained:
▪ Arithmetic unit
▪ Conditional Branching ▪ Loops
 First “Turing Complete”

 (1815-1852) worked with Babbage to create programs for the Analytical Engine
 Created an algorithm to compute Bernoulli numbers on the machine
 First Programmer and also the first programmer to stay up all night working on code!

 Electromechanical relay computer built in Germany by
 Technically Turing-complete (proved in 1998), but typically just carried out specific calculations
Photo by Wikipedia User Jahoe

 Designed by Tommy Flowers at Bletchley Park (England) for use in decrypting German radio teleprinter messages (not Enigma)
 One of the programmers was

 Used for atomic bomb computations in Manhattan Project
 Program “loops” by physically connecting the end of the program tape to the start, forming a loop
 One of it’s first programmers was
Photo by Wikipedia User Topory

 Built at U Penn; used for artillery and hydrogen bomb computations
Photo by Wikipedia User TexasDex

 One of the earliest to store code and data in the same memory
 Origin of the term “von ”

 Early machines were programmed directly in machine language (or even direct wiring!)
▪ No C, Java, Python, etc.
▪ Not even any assembly language

 Each program is actually a plugboard wired up to configure the machine
 This picture is from a company called Sparkler Filters, which still uses its IBM 402 from 1948

Operating systems turn ugly hardware into beautiful abstractions.
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013

 Top down view
▪ Provide abstractions to application programs
 Bottom up view
▪ Manage pieces of complex system
 Alternative view
▪ Provide orderly, controlled allocation of resources

 The first generation (1945–55) vacuum tubes
 The second generation (1955–65) transistors and batch
 The third generation (1965–1980) ICs and
multiprogramming
 The fourth generation (1980–present) personal computers
 The fifth generation (1990–present) mobile computers

 Vacuum tubes functioned as high-speed electronic switches
 Access times for these machines are around 100 milliseconds (1/10 of a second)

 Transistors allowed computers to be reliable enough for commercialization
 Mainframes
 Only government & Universities
 Computing time was typically metered
 Being able to fully use the CPU for the time you
were allotted was very important!
 Transistor-based machines were also much faster
 Access times around 100μs – that’s micro seconds
 This is a speedup of ~1000x!

 An individual job took a set of punch cards
 Cards were loaded onto magnetic tape (using a fast
reader), carried over to the actual computer, and then
the output tape was brought over to a printer
 The key idea of batch processing is to collect multiple
jobs which can be loaded onto the tape and then processed all at once

 Integrated Circuits that contain many transistors
 Consolidated both the cheap and expensive machines
 IBM system/360 first one to use Integrated Circuits
 Multiprogramming
 Timesharing
 Started here MULTICS -> UNIX (FreeBSD,
Linux, iOS, Android)
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

 Large Scale Integration Circuits (Chips) containing 1000s of transistor in a sq centimeter
 IBM 8080
 Microsoft DOS, Windows  Apple

 Nokia N9000/Symbian  Windows Phone
 Blackberry
 iPhone/ iOS

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com