A program or set of instructions that tells the computer what to do
Programming languages used to write software
C++
Java
System software
Programs used to manipulate the basic operations of a computer system
Basic operations handled by system software
Accepting input from keyboard
Sending output to monitor
Locating free disk space
Writing files to disk
Sending documents to printer
Locating and executing programs
Application software
Programs used to accomplish specializedtasks for computer users
Typesof application software
Document production
Spreadsheet
Presentation
Database management
Business
Multimedia
Entertainment
Systemprogramming
The act of developing system software
System programmers
Should have strong knowledge of computer hardware architecture
Languages used for system programming
Machine language
Assembly language
High-level programming languages
Machine language
The natural or primitive language that the computer actually understands, consisting of 0s and 1s
Assembly language
Uses abbreviations or mnemonics in place of binary patterns, easier to program than machine language
High-level programming languages
Use English-like commands, easier to use than assembly language
Advantages of high-level languages over assembly language
Easier to learn and use
Have pre-defined functions and subroutines
Not machine-dependent
Advantages of assembly language over high-level languages
Executable code is more compact
Not constrained by programming conventions
Allows more direct control over memory access
Language translators
System programs that convert high-level or assembly language programs into machine language
Types of language translators
Assemblers
Compilers
Interpreters
System programs that convert high-level language programs into machine language, executing each instruction immediately rather than generating an executable file
Linkers and loaders
System software that combines object files and libraries into a single executable program
Operating system is a system software that allows users or application programs to interact with computer hardware in an easy and convenient manner
Main goals of an operating system
Make the computer easy and convenient to use
Manage computer resources efficiently
Execute and control programs
Key services provided by an operating system
Program execution
Access to I/O devices
File system management
System access control
Error handling
Communication
Kernel
The heart and soul of the operating system, directly controls the computer hardware
Shell
The interface between the user and the kernel
Resource modification
Resources can be modified depending on user type to prevent improper and malicious use
Error Handling
The operating system detects hardware‐oriented and software‐oriented errors
The operating system takes proper actions to resolve errors
Error Handling
1. Retry the operation that caused the error
2. Terminate the program that caused the error
3. Report the error to the user and let the user take the necessary remedial action
Communication
The operating system is responsible for facilitating communication among processes
There are situations wherein a computer is running several programs at the same time while communicating with one another because they share data
There are situations wherein several computer systems may need to communicate with each other
Kernel
The heart and soul of the operating system, it directly controls the computer hardware and performs the services of the operating system
Shell
Part of the operating system that serves as the interface between users and the kernel
Types of shells
Command‐line interface (CLI)
Graphical user interface (GUI)
Core services of the kernel
Process manager
Memory manager
File manager
I/O manager
Process manager
Responsible for determining which among running programs will execute first and determine runtime duration, also responsible for program termination, inter‐process communication, process synchronization, and deadlock handling
Memory manager
Handles memory allocation and monitor which memory areas are in use and which are free or available, provides protection mechanisms to ensure that memory locations assigned to a process will not be taken by other processes
File manager
Organizes and presents files stored in the secondary storage for easy access, can create, delete, modify, copy, move, rename, and view files and directories or folders, prevents unauthorized file access
I/O manager
Manages the different input‐output devices of the computer system, grants user requests to use the I/O devices and resolves conflict issues when two or more programs access a device at the same time
Mainframe computers used in the late 1940s and early 1950s were massive, expensive, slow, and very primitive
Mainframe computers in the first generation had no operating systems, so these were "bare" machines
Mainframe computers in the first generation could only be used by one person at a time, each program was processed one after another (serial processing)