Operating Systems: Concepts and Architectures
Monoprogramming or Single-tasking
An operating system where only one program runs at a time. A new program cannot start until the current one finishes. This execution type is practically obsolete, replaced by multiprogramming.
Multiprogramming
A technique that allows two or more programs to occupy the same main memory unit and execute concurrently. For example, while executing input/output operations for one program, the CPU can perform non-I/O operations for other programs. Multiprogramming is managed by the operating system, which monitors programs until completion. The number of programs that can be effectively multiprogrammed depends on memory size, CPU speed, the number and speed of connected peripherals, and OS efficiency.
Batch Systems
Batch operating systems process information in blocks or “batches” (program, data, and instructions). Jobs are processed in the order received, following a “first-come, first-served” model. Memory is divided into two zones: one for the operating system and the other for loading and executing programs. After a program finishes, a new one loads into the same memory space.
Batch Processing
This mode executes programs without direct user supervision or control (non-interactive processing). These programs typically don’t require user interaction and are suitable for repetitive tasks on large datasets, where manual execution would be tedious and error-prone. An example is rendering movie frames. Batch programs often use scripts or procedures to specify execution steps and resource requirements.
Buffering
Using variables to temporarily store register contents can be seen as creating a data buffer. Data transfers from the register to the buffer using MEMVAR and from the buffer to the register using scatter-gather MEMVAR.
Spooling
The process where the computer briefly stores data destined for a printer before actual printing. This allows the CPU to perform other tasks while the printer processes the spooled data.
Kernel
The core of an operating system, providing the most basic system services. It manages resources, secures access to hardware, and determines which program accesses specific hardware when multiple programs request simultaneous access. The kernel also provides hardware abstractions, simplifying programming by eliminating the need for direct hardware access.
Preemptive Scheduling
Processes are permanently assigned to a queue based on properties like memory size, priority, and type. Each queue has its own scheduling algorithm.
Timesharing Operating Systems
These systems aim to provide equitable resource sharing, giving users the impression of having a standalone computer. The memory manager provides program isolation and protection, as they generally don’t need to communicate. The I/O control manages device allocation and release to maintain system integrity and serve all users. The file manager provides information protection and access control, addressing potential competition and conflicts in file access.
Real-time Operating Systems
These systems prioritize fast response times and process information without downtime. The memory manager is less critical as many processes reside permanently in memory. Large real-time systems often include a file manager focused on access speed rather than efficient secondary storage use.
Network Operating Systems
have a wide variety of shapes and sizes, because every organization that employs them has different needs. Some operating systems behave excellently on small networks, and others specialize in connecting many smaller networks rather broad areas.Distributed Systems: Distributed systems span a considerable number of aspects, so that its development involves a lot of complexity.
There are certain aspects that require extreme care to develop and implement such management failures, the concurrency control, etc..
There are many research topics related to distributed systems, such as those arising in the Challenges section.
We also notice that many technologies are constantly developing and maturing, which means a thorough preliminary study of many factors before betting on any particular technology.
-Monolithic: they have no internal structure or structure is minimal. The OS is a unique program consisting of functions which is called among them.
Advantages: simplicity in the initial design.
Disadvantage: Difficult to keep growing the system.
“For layers is to divide the system into well-defined independent parts, each of which performs a particular task. Each part or level can communicate only with the level or layer immediately above or below, and through a specific interface. The layers or levels often appear as concentric rings.
Virtual-machine: the operating system is divided into 2 levels:
Virtual Monitor: party manages the HW, to allow the mutiprogramacion and maquinasvirtuales run.
Virtual Machines: are responsible for presenting a specific HW to higher levels. Sobe they can install different OSes
-Client-server: is to reduce the OS kernel as possible and implement maxumi Most of the functions and programs in user space (no privileges to access the HW). Is therefore an OS on 2 levels:
Nucleus makes access to HW and process management (creation, synchronization, (micro kernel), disclosure and destruction).
User mode programs: formed by a set of serviodores which offer the rest of the OS services.