Summary Blog Post
Operating systems enable processes to share information by allowing
the contents of RAM memory, virtual memory, registers, the stack, schedulers,
and multiplexors to be accessed by each process. An example of this is the storage
and retrieval of information from executing a multithread user task. Also, the operating
system allocates resources, provides protection, and security for the processes.
“Operating system implements two basic functions below [1,2]: it must be simply
use as extension machine and it must manage and distribute all kinds of
resources reasonably as the manager of the computer system. In addition, some
operating system also takes charge of the computer system’s safety and provides
application-specific services, such as networking, graphic interface and so on
[3,4].” (Jiang et. Al, (2010), page 2). See
Figure 2 for example of OS processes and threads.
Figure 2 - Hierarchy of Operating System Subsystems
Figure 3 – Memory Management
The objective of file systems management, mass storage, and
I/O code in the OS is to organize information in files on the secondary storage
media, and to send and receive information from devices connected to the
computer so it is easy to retrieve. The goal is to configure files in a format
that will be efficient, fast, and easy locate, and allow a user to read, write, modify, or delete them from the hard
disk. Also, the file systems management will allow the user to set parameters
of a file that includes a file name, identifier, file type, size, logical
address (location) on the hard disk. In addition, the time, date, user
identification, are defined in a table when the directory list command is used.
One of the key mechanisms used by the OS to control access to
devices is the controller. Controllers are a scaled down computer with only the
necessary features and capabilities to do the functions it was design for such
as, read the input from the keyboard or output data to the screen. Controllers
can be found inside memory devices like RAM, Hard disks, the tape drive that
runs the backup tapes, and in USB drives. In addition, controllers are used to
control the flow of data on busses like the data bus and direct memory access
(DMA) bus, the control the display devices like LCD monitors, and they control
the input and output of data to the computer with network interface cards,
serial ports, SCSI ports and more. See Figure 5.
Figure 5 – Files, Mass Storage, and I/O Management using Controllers
For future courses or jobs that involve software projects that need to interface with an OS, I would use the knowledge learn about processes and threads to maximize the capabilities of a uniprocessor or multiprocessor by including code that will allow processes or tasks to share resources and defined in the system architecture. Another thing I would include are the device libraries to provide code for controllers connected to the input and output devices needed. In cases where multi-users are required, an acyclic-graph file system would be used to allow common files to be shared and I would include protection and security measures such as passwords, encryption, and restrict user access as needed using permissions setup by the system administrator.
Reference
Jiang, H., Gao,
W., Wang, M., See, S., Yang, Y., Liu, W.,
and Wang, J. (2010), Research of an architecture of operating system kernel
based on modularity concept, Mathematical and Computer Modelling, Volume 51,
Issues 11–12, Pages 1421-1427, ISSN 0895-7177, https://doi.org/10.1016/j.mcm.2009.10.006.
(https://www.sciencedirect.com/science/article/pii/S0895717709003
Silberschatz, A.,
Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials
(2nd ed.). Retrieved from https://redshelf.com/.