Topic 1 - Introduction to Operating Systems Flashcards
State 3 characteristics of an operating system
1) runs directly on hardware
2) is in charge of managing the hardware
3) hides the hardware details from software - provides a much simpler interface for programs
If the hardware is changed, should the software change or should the operating system handle it?
Operating system should handle it.
What happens when a computer is booted?
Goes through a sequence of actions to initialize itself > then at the end of this process, it passes control to a very complex program called Kernel (the core of the operating system)
What are the jobs of the kernel?
1) Memory management 2) Process management 3) Inter-process communication 4) Input/output 5) File management 6) Security and access control 7) Network Access
How do you reach / deal with the kernel?
Through a special program called the Shell.
What is the Shell program?
A special type of program (a command process) that surrounds the kernel and acts as our personal interface to the system
What are the main categories of the Kernel
1) Monolithic kernels 2) Microkernals
Define: monolithic kernels
-one very large program -performs everything by itself -fast and efficient -difficult to design and maintain
Define: Microkernals
-a much smaller program -performs the most basic tasks only - to perform the most basic tasks only -to perform the rest of the functions, a microkernal calls upon a set of other programs (called servers) servers are programs, not machines
Operating Systems are packaged with…
Many utility programs that allow users to edit files, communicate with each other, use the internet, develop programs, …
Utility programs also include those that provide interface with the computer - give some examples:
Shell programs - provide text-based interface GUI programs - provide graphical user interface
What can User programs do? (utilities developed by programmers)
1) Use any of the utility programs, 2) use any of the shell commands, or 3) Call the kernel directly
Summarize 1st generation of computing
Mid 40’s Mid 50’s - vacuum tubes - programming was done by wiring up electrical circuits / no programming languages or operating systems
Summarize 2nd generation of computing
Mid 50’s Mid 60’s - transistors and batch systems - manufactures & sold to customers - FORTRAN & assembly were dominant programming languages - tapes were main storage, operators used in machine room
Summarize 3rd generation of computing
Mid 60’s early 80’s - IC’s & multiprogramming - Small-scaled integrated circuits were utilized - disks were used as storage devices - Bell labs entered the game