OS Basics
The base OS or Kernel performs the basic functions of an OS via varying subsystems.
For example, the timer and job pool are used for job management.
Drivers are used to control all hardware to software interfacing as
well. As a result, memory and storage management are in part reliant
upon drivers. The user interface also allows the user to create, end,
and modify processes (as well as manage hardware resources such as
storage and memory). It also allows users to modify protection and
security settings such as permissions and privilege escalation (such as
running in kernel mode).
A map of these functions and their connections is attached below.
Processes
Operating Systems enable processes to share and exchange information via a variety of methods.
One critical component for this is the PCB (or process control block). It stores information such as process state, process number, process counter, open files, and more.
There are also concepts such as pipelining which allows several processes to access the same file. Computation speedup which lets a problem be broken down into multiple sub-tasks to be handled simultaneously by multiple processors. Modularity which is the nature of an efficient architecture to be broken down into multiple modules rather than a single, monolithic one.
There are also shared memory systems. In these types of systems, memory is initially in the address space of a single process. A system call is then made in order to make the memory publicly available to other processes. There are message-passing systems as well. These types of systems support a minimum of "send message" and "receive message" system calls. Once a communication link has been established between processes, messages can be sent to pass data.

Memory
Memory management techniques help with solving memory management issues via a variety of methods. For physical memory, techniques like paging (segmentation) are used to divide memory into smaller chunks to be distributed out to different processes as needed, that way processes aren't given chunks larger than necessary due to the inefficiency this creates. Memory allocation also can be optimized based on algorithms like first-fit or best-fit in order to increase efficiency. These can also result in fragmentation as well depending on the algorithm used and thus must be chosen wisely. Finally, garbage collection can be utilized in order to release unused memory in order to free up resources for the OS to use when needed.
Virtual memory is also used when physical memory is depleted, in this case a chunk of secondary storage such as the disk is marked for "memory usage" and overflow will be stored here until physical memory is freed or processes that are less frequently used are swapped out to virtual memory.
Storage
Within a modern OS files are managed via what is known as a file system. These can consist of a variety of structures such as single-level structures that are primarily for single user systems. There is also two-level systems which are more simple structures for multi-user systems. Next, there is the tree-structure which has multiple branching directories and support for multiple users. There are also acyclic graph and general graph structures. Acyclic graphs have no clear beginning or end and files can be referenced in multiple locations such as symbolic links. Most systems use a tree/acyclic graph hybrid structure in modern times.
Modern file systems also support a variety of operations such as reposition, truncate, read, write, create, and delete of files and directories. A modern OS also should have solid support for reliability and recovery. This often is done via backups and/or options such as RAID (redundant array of independent disks) which offers performance and redundancy benefits.
There are also I/O options that use the controller, bus, and varying ports in combination with drivers and the OS kernel in order to permit storage and transmission of data between the processor and storage devices.
Security and Protection
Within the realm of security and protection there are two primary focuses, internal (protection) and external (security). For external the primary levels of security focus on physical security such as locking down access to equipment and server rooms. Next, there is human security. This is the training of staff in order to be aware of social engineering techniques such as phishing and tailgating. Next, there is OS level security. This comes in the form of firewalls and anti-malware software primarily. Finally, there is network security. This can take the form of network monitoring software, IDS (intrusion detection system) software, firewalls, etc.
In the more internal protection side there are a variety of different techniques as well. First the principle of least privilege is of note. This designates that the least amount of privilege needed for a given task should be assigned to prevent unnecessary harm in the event of a breach. Next, there is the need-to-know principle. This states that only data a user or process needs to perform their given tasks should be accessible.
Following this, there are a variety of methods for providing an access matrix. An access matrix groups domains and objects together to determine which domains have access to which objects. There is domain based access which uses a capability list and domain switching in order to determine and limit access to specific objects. There is also object based access. This variant uses an access list instead of a capability list.
Future
In the future I will use these concepts as needed in future courses. Primarily though, I will apply these concepts to my professional life to further help me with utilizing RAID and backups for storage, memory management techniques within programming, and access control for permissions management on systems I administrate.
Resources:
Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://redshelf.com/
Comments
Post a Comment