Operating System Overview
Operating System
An operating system (OS) is a software program that enables computer hardware to communicate with and run computer software.
- It refers to a system program that exists between hardware and user programs in order to operate hardware resources and information as efficiently as possible.
- It is a program that boots and operates a computer.
- The applications that can be used vary depending on the selected operating system.
- The purpose of a computer, such as a PC or server, is determined by the type of operating system.
Classification of Programs That Operate a Computer
- Software
- Applications
- Word processors
- Games
- Graphics
- Other applications
- Operating systems
- Windows
- UNIX
- Linux
- MacOS
- Other OSes
- Applications
System Software
System software refers to programs used to operate a computer, as well as compilers that interpret programming languages.
- Example: operating system
Application Software
Application software refers to programs users use to perform actual work.
- Examples: word processors, spreadsheets, databases, computer graphics software, game software, and more
Driver
A driver is a program that operates hardware installed on a computer.
- Examples: video card drivers, sound card drivers, modem drivers, and more
Main Purposes of an Operating System
An operating system has two main purposes.
- It manages the computational activities of a computer system so that the computer system works properly.
- It provides an environment for developing and running programs.
Goals of an Operating System
An operating system aims to improve user convenience and maximize system performance.
- Improve throughput: process as much data as possible within a fixed amount of time
- Reduce response time: minimize the time from a processing request to completion
- Improve reliability: handle system failures
- Improve ease of use: pursue a convenient user environment
Structure of an Operating System
The two elements that make up an operating system are control programs, which control the computer, and processing programs, which execute programs and process data.
-
Control programs
- Monitor the overall operation of the system and the execution status of programs
- Manage and process the workflow of tasks requested by users, including starting and running those tasks
- Centrally manage input/output-related data
-
Processing programs
- Programs such as assemblers, compilers, and interpreters that translate source programs written in high-level languages into machine language that a machine can understand
- Application software
- Utilities
Understanding Partitions
A partition means a logical divided area. A physical hard disk must go through a procedure to be recognized as a logical drive by the OS, and partitioning is the work of setting up the logical area that the OS will use on the physical device called a hard disk.
For an OS to use a hard disk, it must generally go through two procedures. One is partitioning, which declares part or all of the disk space as its own area, and the other is formatting, which creates the file input/output structure.
A disk without partitions cannot be recognized.
Using a hard disk by dividing it into several logical drives is the user’s choice. When installing two operating systems together, the disk must be divided.
Kernel
The kernel is the core and most important part of a computer operating system, providing basic services for every part of the OS.
CPU, GPU
- CPU (central processing unit)
- The top-level central processing unit that manages computer resources, including input/output devices, storage devices, and arithmetic units.
- GPU (graphics processing unit)
- Graphics processing unit
- It performs large amounts of repetitive and similar operations and divides them into parallel work, making it overwhelmingly faster than a CPU for those tasks.
Memory
- Memory is the space used to store targets or results of processing so that a computer can perform work.
- Information required to run programs is stored in memory and processed there.
Difference Between Heap and Stack Areas
For a program to run, it must be loaded into memory. Therefore, the operating system provides various memory spaces for program execution.
- Code, data, stack, and heap areas are allocated, and each role is as follows.
- Code
- The text area where the code of the program to be executed is stored.
- The CPU fetches and processes instructions stored in the code area one by one.
- Data
- This corresponds to global variables and static variables.
- It is allocated when the program starts and disappears when the program ends.
- Stack
- The stack area stores local variables and parameters related to function calls.
- It is allocated when a function is called and released when the function call ends.
- Heap
- The heap area is a memory area that users can manage directly.
- Memory space in the heap area is dynamically allocated and released by the user.
- Code