Introduction - Illinois Institute of Technology
Transcript of Introduction - Illinois Institute of Technology
![Page 2: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/2.jpg)
Computer ScienceScience
- http://moss.cs.iit.edu
- Office: SB 226C
- Hours: Wed/Fri 12:30-1:30PM
Michael Lee
![Page 3: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/3.jpg)
Computer ScienceScience
- Syllabus & Administrivia
- Course overview (“Systems Programming”)
Agenda
![Page 4: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/4.jpg)
Computer ScienceScience
§Syllabus
![Page 5: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/5.jpg)
Computer ScienceScience
- “substantial” programming experience
- data structures: concepts & implementation
- basic run-time analysis (big O)
- knowledge of (any) assembly language
- computer organization essentials
Prerequisites
![Page 6: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/6.jpg)
Computer ScienceScience
- computer organization essentials:
- data representation (binary, two’s comp, f.p. inaccuracy, etc.)
- von Neumann model
- CPU, memory, I/O
- stack usage / conventions
![Page 7: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/7.jpg)
Computer ScienceScience
1.Course website moss.cs.iit.edu/cs351
- static information
- lecture calendar, assignment writeups, slides, screencasts, links, etc.
Online resources
![Page 8: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/8.jpg)
Computer ScienceScience
2.Blackboard
- grade spreadsheet
- (possibly) for online assessments
Online resources
![Page 9: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/9.jpg)
Computer ScienceScience
3.Vimeo channel: screencasts
- vimeo.com/channels/cs351
- walkthroughs & tutorials (check before starting labs!)
Online resources
![Page 10: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/10.jpg)
Computer ScienceScience
4.Discord: discussion forum
- all class-related questions
- text/audio chat + screensharing
Online resources
![Page 11: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/11.jpg)
Computer ScienceScience
Textbooks
![Page 12: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/12.jpg)
Computer ScienceScience
Grading- 50%Labs
- 25%Midterm exam
- 25%Final exam
![Page 13: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/13.jpg)
Computer ScienceScience
Grade Scalechar letter_grade(float score) { if (score >= 90.0) return 'A'; else if (score >= 80.0) return 'B'; else if (score >= 70.0) return 'C'; else if (score >= 60.0) return 'D'; else return 'E'; }
![Page 14: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/14.jpg)
Computer ScienceScience
Labs- 5-7 fairly substantial machine problems
- 100-1000 LOC
- real-world application of concepts covered in lecture & textbook
- late policy: 10% penalty per day late, 5 max
![Page 15: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/15.jpg)
Computer ScienceScience
Exams- Midterm and Final exams modality TBD
(online or in-person)
- Nominally cumulative
- Scores may be linearly scaled so that median/mean (whichever lower) is 75%
![Page 16: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/16.jpg)
Computer ScienceScience
§Course Overview
![Page 17: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/17.jpg)
Computer ScienceScience
“Systems Programming”system |ˈsistəm| noun 1 a set of connected things or parts forming a complex whole
(New Oxford American Dictionary)
![Page 18: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/18.jpg)
Computer ScienceScience
“Systems Programming”- Programming the operating system
- What does that mean?
![Page 19: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/19.jpg)
Computer ScienceScience
OS vs. OS kernel- OS kernel ≈ smallest subset of OS code
needed to bootstrap system and provide basic services to user programs
- “smallest” is debatable
![Page 20: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/20.jpg)
Computer ScienceScience
How to “program” it?- Require some API
- Application Programming Interface
- A collection of (documented) functions
- e.g., get/put/del for a hashtable
![Page 21: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/21.jpg)
Computer ScienceScience
OS API- a.k.a. “system call” interface
- OS as a very low-level library
- common purpose: provide services to user level programs
- def: program in execution = process
![Page 22: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/22.jpg)
Computer ScienceScience
The Process- A program in execution
- Code + Data { global, local, dynamic }
+OS kernel data
- OS hides complexity of machine from processes by creating abstractions
![Page 24: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/24.jpg)
Computer ScienceScience
Primary Abstractions- Logical control flow
- Exceptional (extra-process) control flow
- Logical address space
- Uniform I/O
- Interprocess Communication
![Page 25: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/25.jpg)
Computer ScienceScience
- … every program had to include its own implementation of all the above!
- Now, OS simplifies life for all of us.
- Only need to know how to use them, not how they’re implemented.
In the old days …
![Page 26: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/26.jpg)
Computer ScienceScience
But!- In this class we dig a bit deeper
- What facilities are encapsulated by syscalls?
- What limitations/restrictions do they have?
- Why are they designed the way they are?
- How do they work behind the scenes?
![Page 27: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/27.jpg)
Computer ScienceScience
But why should I care?
![Page 28: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/28.jpg)
Computer ScienceScience
- efficiency: know how to use tools optimally; reuse existing features and design/layer new ones appropriately
- robustness: avoid bugs/failures & know how to diagnose and fix them
![Page 29: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/29.jpg)
Computer ScienceScience
the real reason: it’s fun to take things apart!
![Page 30: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/30.jpg)
Computer ScienceScience
goal: turn you into a hacker
![Page 31: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/31.jpg)
Computer ScienceScience
(or: make you a better hacker)
![Page 32: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/32.jpg)
Computer ScienceScience
The Jargon File, version 4.4.7
hacker |ˈhakər|noun 1 A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.
![Page 33: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/33.jpg)
Computer ScienceScience
Our tools (& approach)- C & Linux
- C: low-level language
- GNU Linux: open source kernel & tools
- GNU gdb & gcc; debugger & compiler
![Page 34: Introduction - Illinois Institute of Technology](https://reader031.fdocuments.us/reader031/viewer/2022012412/616bc7c289afa852aa531778/html5/thumbnails/34.jpg)
Computer ScienceScience
Fourier- All labs must be tested and submitted on the
class Linux server: fourier.cs.iit.edu
- You will receive an e-mail with account info by the end of the week
- Log in via SSH client, submit work via Git