Introduction to Operating Systems

What is an Operating System?

▪ computer hardware

▪ software resources

▪ provides common services for computer programs

▪ Instead of applications (like browser) interacting with the computer hardware directly, they can use the OS as abstraction layer between the two

▪ Messy, if every app had to talk directly to the hardware parts

▪ Apps, like browser can't be installed directly on the hardware

Tasks of an Operating System

1) Resource Allocation and Management

Process Management (CPU):

▪ 1 CPU can only process 1 task at a time

▪ OS decides which process gets the processor (CPU), when and for how much time and allocates the processor to the process

▪ CPU is switching so fast that you don't notice it

Memory Management (RAM):

▪ Allocating working memory (RAM = Random Access Memory) to applications

▪ RAM is limited on the computer

Storage Management (Hard Drive):

▪ Also called "secondary memory" - the hard drive

▪ Persisting data long-term, like files, browser configurations, games, pictures, videos etc.

2) File Management

▪ Files are stored in structured way

▪ A file system is organized into directories

▪ On Unix system: tree file system

▪ On Windows OS: multiple root folders

3) Device Management

▪ Manages device communication via their respective drivers

▪ Activities like:

● Keeping track of all devices

● Deciding which process gets the device, when and how long

4) Other important tasks

▪ Security:

● Managing Users and Permissions

● Each user has its own space and permissions

▪ Networking

● Ports and IP addresses

● Transmitting outgoing data from all application ports onto the network, and forwarding arriving network packets to processes

⭕ Kernel

The kernel is the essential center of a computer operating system. It is the core that provides basic services for all other parts of the OS. It helps with process and memory management, file systems, device control, and networking.

It decides which process should be allocated to processor to execute and which process should be kept in the main memory to execute. It acts as an interface between user applications and hardware. The major aim of kernel is to manage communication between software i.e. user-level applications, and hardware i.e., CPU and disk memory.

Last updated