Program – a set of instructions that tells the computer what to do.
Software – a set of interrelated programs.
Types of Software
1. Systemsoftware – used to manipulate the basicoperations of a computer system.
2. Applicationsoftware – used to accomplish specializedtasks for computer users.
Types of application software
Documentproduction software
Spreadsheet software
Presentation software
Databasemanagement software
Business software
Multimedia software
Entertainment software
Documentproduction software – used to compose, edit, print, and electronically published documents.
2. Spreadsheet software – used to create and manipulate spreadsheets electronically for analysis, planning, and modeling.
3. Presentation software – used to create and display information in the form of slide shows.
4. Databasemanagement software – used to store, modify, and retrieve information from a database in an organized and structured manner
5. Business software – can provide users with tools for business management.
6. Multimedia software – can manipulate pictures, sound, and video.
7. Entertainment software - an refer to video games, screen savers, programs to display motion pictures or play recorded music, and other forms of entertainment which can be experienced through use of a computing device.
Systemprogramming – the act of developing system software.
Types of programming languages
Machine language – the natural or primitive language that the computer actually understands.
Low-level language/assembly language – uses abbreviations or mnemonics in place of binary patterns.
High-level language – uses English-like commands.
Types of system programs
Operating Systems
Language translators
Linkers and loaders
Operating Systems – set of programs that are required for providing interface between the different applications and hardware of the computer systems or mobile phones.
2. Language translators – convert a high-level language program/assembly language program into machine language
a. Assemblers
b. Compilers
c. Interpreters
3. Linkers and loaders
Linker – a system that combines or links the modules together with the libraries which then form a single executable program called loadmodule.
Loader – responsible for bringing the load module to the main memory for execution.
Addressbinding – the process of assigning or mapping symbolic references to actual memory locations.
Physical address/absolute address – the actual main memory location
Techniques in placing the load module in the main memory
Absolute loading – the load module has actual memory addresses assigned instead of symbolic variables.
Relocatable loading – address binding is performed right before the load module is loaded and the address assignment was based on the available main memory location at that time.
Dynamic run-time loading – the absolute address is not generated when loaded, but only when it is needed by the CPU.
OperatingSystem – a system software that allows users or the application programs they are using to interact with the computer hardware in an easy and convenient manner.
Major functions of an OS
It creates a virtualmachine interface between the user/application program and the hardware.
It acts as the computer’s resource manager or resource allocator. a. Important resources managed by the OS ( CPU, Main memory I/O devices)
It functions as the program launcher
Main goals of the OS
1. It should make the computer easy and convenient to use.
2. It should manage the resources of the computer system to make them more efficient.
3. It should execute and control programs.
Bootstrapprogram – stored in the computer’s Read-OnlyMemory (ROM) and is executed upon power on.
Boot Block Loader – locates the OS and loads it in the main memory.
Two parts of OS
Kernel – the heart and soul of the OS; directly controls the computer system hardware and performs the services of the OS.
Shell (Command Interpreter) – part of the OS that serves as the interface between users and the kernel.
Types of shell
Command-Line Interface (CLI) – requires users to type the commands at a prompt; requires knowledge of commands and proper instruction formulation.
Graphical User Interface (GUI) – requires users to enter commands by either using drop-down menus or by clicking on icons using a mouse pointer.
Services provided by the OS
Programexecution.
Access to I/O devices
FileSystemManagement.
System Access.
Error handling.
Communication.
Program execution - The OS locates a program in the secondary storage, loads it in the memory and executes it.
3. File System Management - Access to files in secondary storage is provided by the OS.
4. SystemAccess - The OS prevents unauthorized access to the computer system which is useful especially in a computer system with multiple users
5. Errorhandling - When an error is encountered, the OS may:
Retry the operating that caused the error.
Terminate the program that caused the error.
Report the error to the user and let the user take the necessary remedial action
6. Communication - The OS is responsible for facilitating communication among processes.
Core components of an OS
Process manager (Process scheduler/CPU scheduler) – responsible for determining which among the programs will execute first and determine runtime duration.
Memory manager – handles memory allocation and monitor which memory areas are in use and which are free or available.
File manager – organizes and presents files stored in the secondary storage for easy access.
I/O manager – grants the user requests to use the I/O devices and resolves, conflict issues when two or more programs access a device at the same time.
History of OS
First Generation – SerialProcessing
Second Generation – BatchProcessing
Third Generation – MultiprogrammedSystems
Fourth Generation – Time-SharingSystems
First Generation – Serial Processing
Computers were massive, expensive, slow, and very primitive.
They have no OS, so there were “bare” machines.
They can only be used by one person at a time.
There were no keyboards during this time so user commands are entered by using toggle switches.
First Generation – SerialProcessing
5. There were nofixed or hard disks.
6. High-level programming languages were developed and entered into the computer by using punched cards.
Punched cards – thin cardboards with little square holes that represent information.
Punched card reader – used to read the punched cards which generate the electronic form of the program, and load it into the main memory for compilation.
C. Keypunch – looks like a typewriter that is used to puncture holes in the punched cards.
2. Second Generation – BatchProcessing
Batch processing – similar jobs were grouped and processed together as a batch.
Control cards – contain information or instructions on how the job following it should be performed by the computer.
Monitor – a system software that interprets the instructions contained in the control cards.
Automatic job sequencing – ensures that when a job has finished executing, the next job automatically starts
Third Generation – Multiprogrammed Systems
Job Scheduling – performed wherein the OS selects which among the programs will be loaded in the main memory.
CPU Scheduling – performed wherein the OS selects which among the programs should be executed first
Fourth Generation – Time-SharingSystems
The CPU is assigned to user or process for a time period (also called time slice or time quantum) by the OS.
Types of Computer Systems and their OS
Personal computer systems
Multiprocessor systems
Networked and Distributed Systems
Real-time systems
Handheld systems
Personalcomputersystems
These were single-user systems only.
The microprocessors do not have the necessary hardware support to provide protection to processes.
OS focused on improving user-friendliness and response time.
Multiprocessorsystems
It contains two or more CPUs b. Kinds of multiprocessor systems
Symmetric multiprocessor (SMP)/Shared memory multiprocessors – has identical processors sharing a common memory.
B. Assymmetric multiprocessor (AMP)/Distributed memory multiprocessors – each processor has its own memory, thus specific tasks are assigned to each processor.