Operating Systems Fundamentals

 

Operating System Features

Modern operating systems include important features such as:

·       User InterfaceA system that allows users to enter inputs and read outputs. The most common user interface for consumer uses is GUI (Graphical User Interface)

·       Program Execution: Loads programs into memory and runs them.

·       Input/Output OperationsAllows for entering inputs into a program and reading outputs from a program.

·       File System ManipulationAllows programs to read and write files. For example, a word processor needs to read text files and write them to memory.

·       CommunicationsSystems in which one process sends or receives information from another process.

·       Error Detection: The operating system detects and corrects errors. Unresolved errors can cause a system to crash.

·       Resource Allocation: The OS manages resources and allocates them for multiple users and programs.

·       Accounting: Allows the OS to track the resources used by users.

·       Protection and Security: Allows the operating system to control the use of information. For example, a user may need to provide a password to be able to use a computer.















Sharing Information

Because operating systems handle these complex tasks, it is necessary for various processes to share and exchange information. A process is simply a program that the operating system is executing.

Each process has a critical section of its code that allows it to perform certain functions. However, this presents a problem as processes must share and exchange information they may need for executing functions in their critical sections. To facilitate the sharing of information, the operating system allows only one program to access its critical section at a time.

This creates another problem, because the operating system must decide which program to allow to access its critical section. There are multiple software solutions to this problem, but one well-know solutions is Peterson’s solution. This solution first checks if a process is ready to enter its critical section, and then checks to see if that process is stored in a variable called “turn”. If it is, the process is allowed to enter.






Memory Management

Operating systems perform memory management by dividing available memory among different processes. The primary objective of memory management is to ensure the system runs efficiently by using memory effectively.

The information processes use are kept in main memory (also known as Random Access Memory). This is the primary place the system stores the memory it needs to run. The RAM is much faster than the computer’s hard disk, so the system is more efficient by storing memory there.

However, if the system is running out of space in the RAM, the computer can use virtual memory. When using virtual memory, the system partitions a section of the hard disk to store memory it does not have space for in the RAM. Although this is slower, it is a free way to increase available memory.

















File Management

The objective of file system management is to allow the operating system to store data in logical records called files. The operating system maps these files to space on physical storage devices, such as hard disks. The operating system also maintains a directory of all the files on the system and where they are stored.

One of the primary input/output devices related to file management is a bus, which is a set of wires and a protocol that determines what messages can be sent and received on the wires. There are many types of buses available, including the common USB (universal serial bus). The bus itself communicates with the computer via an access point called a port. For example, a USB flash drive can be connected to the USB port on a computer. From here, the CPU handles the work of moving memory between devices. This process is managed by a kernel module called a device driver that controls the device.

















Security

Processes execute in domain by accessing or manipulating objects, those objects are hardware and software. The objects need to be protected from access and/or use by malicious threats.

The access matrix is a general model of protection, and it can be implemented as access lists associated with each object or by capability lists associated with each domain to guard from potential threats. Dynamic protection model in the access matrix model is included by considering domains and the access matrix itself as objects. Real systems model is much more limited than general model and tends to provide protection only for files. Language-based protection model provides finer-grained arbitration of requests and privileges.

These various approaches to security work in a similar way. They seek to limit access to particular files or I/O devices by unauthorized users. Some security systems use an access control list which defines how each program can be used by each user. Another approach is a capability list. If a user has a capability list, it is allowed to access a process.



Reflections

These concepts will help me better understand how computer systems work. This is very important to me as I am looking forward to a career in the technology industry. Even at my current job, I am finding this knowledge is helpful in understanding different components of the computer system and network.

Link to Full Concept Map: OS Concept Map

Link to Blog Post:

References:

Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://redshelf.com/

GeeksforGeeks. (2021, November 22). Memory Management in Operating System. Retrieved August 26, 2022, from https://www.geeksforgeeks.org/memory-management-in-operating-system/

Comments

Popular Posts

Programming Languages

Tech Topic Connection: Cyber Security

Network Security