Operating Systems: Overview & History Flashcards
What is the definition of an Operating System?
There’s no universally accepted definition. Kernel of the operating system.
If something isn’t the kernel of the OS, what is it?
Either a system program or an application program
What is the purpose of an OS?
Ensuring that hardware resources are shared fairly and securely e.g., Processor, I/O devices, memory.
Provide an environment for execution of programs an provide services to programs and users.
- Prevent errors and improper uses.
- Allocate all system resources fairy and efficiently.
- Ease of use to the user.
Outline the Von Neumann Architecture
The origins of the General-purpose Stored program computer (1945), where both instructions and data are stored in the same memory.
Von Neumann v Harvard, which do systems perform better with and why?
Systems based on the VNA perform wore than those based on the Harvard. This is because, in the VNA, the same network buses have to be shared for fetching both instructions and data.
Where is the Von Neumann Architecture used?
General purpose systems e.g., laptops and smartphones.
What is phase 1 of OS evolution, when was it, and what did it include?
Phase 1: Serial Processing.
1940s - 50s.
No operating system, so programmers had to interact directly with the hardware and sign up for blocks of time with the hardware, meaning there was the potential for wasted time. I/O devices also took a long time as the CPU was often idle.
What is phase 2 of OS evolution, when was it, and what did it include?
Phase 2: Simple Batch Systems:
1950s - 60s
No longer interact directly with the hardware.
Submit jobs to computer operator who bundles a group of jobs into a batch.
Job - A single program called a job had to be installed before being used with its compiler and code, saving the object program and linking and so on to run the program.
Resident program - monitor - accepts batch and processes jobs sequentially with minimal pauses between.
What major event that impacted OS happened in the 1960s?
The Apollo program.
What was the problem laid out by NASA during this major event?
The 1 cubic foot problem. Computers typically built batch management style, big and bulky, often needing entire buildings worth of space. NASA space/lunar race needed much smaller, hence the 1 cubic foot rule. Transitioned from valves to silicon and memory to core memory ropes with each wire thread through magnetic cores, resulting in the Apollo guidance computer (AGC).
How was the problem laid out by NASA during this major event relevant to OS?
Pre 1960s Operating Systems were constructed for the individual (mainframe) computer. But the smaller the computer, the greater the value and the AGC was among the first real-time operation computers. The AGC paved the way for the miniaturisation of computers, and the eventual development of personal computers, laptops and mobiles.
What is phase 3 of OS evolution, when was it, and what did it include?
Phase 3: Multi-Programmed Batch Systems:
1960s - 1970s
Automatic job sequencing removed gaps between jobs.
Processor still IDLE sometimes, and time was spent waiting for I/O devices still.
Multiprocessing allowed OS’s to switch to a different job when an active job was waiting for an I/O.
UNICS (later UNIX) became a foundation for modern OS’s.
What is phase 4 of OS evolution, when was it, and what did it include?
Phase 4: Time Sharing
Multi-programmed batch systems can be quite efficient but do not allow for user interaction. Time sharing allows for that user interaction, however, there is a trade-off between maximising user processing and minimising response time.
What was the significance of UNIX’s rise in 1970?
UNIX is portable, written in C, making it easier to adapt to different hardware.
UNIX is modular, introducing the idea of small, reusable utilities working together.
UNIX has a hierarchical file system, providing a flexible and powerful file organisation method.
What was the impact of UNIX’s rise in 1970?
UNIX became the foundation of many modern OS’s, including Linux, BSD, and macOS.
Outline the key features of an OS.
UI.
Process management.
Memory management.
Information Protection and security.
Scheduling and resource management.
Communication.
Error detection.
What are system calls?
Programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on.
They act as a bridge between user-mode and kernel-mode operations.
How are System calls accessed by programs?
Via a high-level Applications Program Interface (API), rather than direct system calls.
What is an API?
Contracts that define how different software components interact, specifying rules, endpoints, data formats and protocols that enable communication between applications.
What are the core components and rules of an API?
Endpoints are specific URLs or URIs where an API can b accessed. They enable application developers to interact with various services, retrieve data, and perform actions.
Parameters are additional pieces of information included in the URL or request body to customise the query, allowing clients to specify conditions, filters or other details for the requested data.
Request headers contain additional information about the request and play crucial roles in providing metadata. Clients can include headers in their requests to provide such information such as authentication tokens, content type, preferences etc.
The request body contains the main content of the request, holding the actual data being sent to the API, often in a structured format and commonly written in JSON or XML.
What are the three most common API’s?
Win32 API - for Windows
POSIX API - for all POSIX-based systems (*nix, OS X, Android)
Java API - for the Java Virtual Machine (JVM).
Outline the API - System Call - OS relationship
User mode:
User application wants to open a file.
Open () API request sent to the System Call interface (SCI).
Switches to Kernel mode:
SCI works out to be numbered system calls.
Look up the correct system call.
Implement the System call.
Return yes.
What is an OS system program?
Software to provide useful functions, utilities, and services.
Where do system programs operate?
System programs are not apart of the kernel, but operate in user space.