Skip to main content

Posts

Showing posts from January, 2022

Access Lists and Capabilities

To implement an access matrix, we must first understand what it is. An access matrix is a protection model within an operating system consisting of objects and domains. The access matrix determines which processes interact with objects within the domain. Objects within the domain can consist of both hardware and software. The lists below show the advantages and disadvantages of access lists associated with objects, and capabilities with domains.  Access lists associated with objects Advantages  Corresponds directly to the user’s needs.  Easy revocation and review of access.  Disadvantages  Difficult to determine access rights for a domain.  Takes time to search the domain for access rights.  Capabilities with domains Advantages  Useful for localizing information for a process.  Secured against unauthorized access.  Disadvantages  Inefficient at the revocation of capabilities.  Does not correspond directly to the user’s needs.  Even though each implementation has its own strengths and w

Hard Drive Disk-Scheduling Algorithms

First­-Come­-First­-Served (FCFS) The first­-come-first­-served (FCFS) algorithm is designed to handle requests in the order they are received, regardless of where the head is located within the disk drive. Even though this is most fair algorithm out of the three, it is also the least efficient. The graph below shows how inconsistently the head had to travel in order to serve the requests that were being sent. Shortest-­Seek­-Time-­First (SSTF) The shortest­-seek-­time-­first algorithm aims to handle requests with the shortest seek time from the current head location. This algorithm surprised me as I thought it was going to be more efficient than the FCFS algorithm. As shown in the graph, this algorithm was performing very well until a request was sent at cylinder 17. In this case the head waited to serve the request at cylinder 17 until very last which forced the head to travel a long distance. SCAN The SCAN algorithm handles requests by moving the arm from one end of the cylinder to

File System Management Functions

The main purpose of file system management is to be able to store information, organize it, share it, and access it later. The file system is comprised of two parts: a collection of files, and a directory structure. It also provides the user with access to online storage, data, and operating system programs. When it comes to the operation of files there are several distinct types that they can perform to include:  Creating  Writing  Reading  Repositioning  Deleting  Truncating  In terms of reliability, a new organizational technique was introduced called redundant arrays of independent disks (RAID). According to Silberschatz, Galvin, & Gagne (2014), the new RAID techniques "are commonly used to address the performance and reliability issues." (p. 458). The RAID technique uses multiple disks rather than a single disk to improve overall performance and allow for data redundancy.  In total there are five distinct directory structures seen below. Each directory structure has

Memory Allocation Algorithms

First­-Fit The process for entering a process using the first­-fit algorithm was to find the first available partition that the memory could fit into. Although this may have been the quickest way to allocate a process to an open partition, it was not the most ideal. The process is written in an open partition regardless of the total amount of memory that was available. This is not the most efficient way to store processes because the algorithm may write into a partition that could have later been occupied by a larger process. However, this algorithm, overall, is better than the worst ­fit algorithm in the fact that it was able to store more of the assigned processes. Best­-Fit The best fit method was the most efficient algorithm. This is because the algorithm is trying to find the smallest partition that the process can be stored in. Doing so provides the most leftover memory that an additional process can be stored in. However, this may not be the quickest solution as each partition w

Memory Management

One of the primary objectives of memory management is to keep track of memory locations regardless of if they are in use or free and how much memory each process uses and for how long. Memory management also involves mapping logical address to physical addresses. During this process there are three different states that the addresses can be in: symbolic, relative, and physical. There are a few methods of memory compaction regarding memory management including swapping and fragmentation. According to Tutorials Point (n.d) “Swapping is a mechanism in which a process can be swapped temporarily out of main memory to secondary storage and make that memory available to other processes.” Fragmentation involves organizing memory into one large block rather than having it separated by open, free memory. Memory allocation is another major function that helps partition memory between low memory and high memory to ensure that the memory is used as efficiently as possible. Segmentation is the proce

Single-Threading VS. Multi-Threading

A printer that is printing a set of documents would perform best utilizing a single-­threaded process. In this instance, the printer is developing the documents in the order they were queued. There is no need to have additional threads added to the process because the printer is only going to allow the documents to print in order. This example may be different if the printer could print several jobs at once because the printer would need to assign specific jobs to certain print heads and may even need to add custom finishes to certain documents. An application that allows the graphical user interface (GUI) to remain responsive while processing a large number of files would best be done utilizing a multi­threaded process. The reason this example needs to be conducted with a multi­threaded process is because the main thread is being used to process the large number of files. At the same time the files are being processed an additional thread is needed to ensure that the GUI remains respo

Operating System Processes

A process is defined as a program in execution which means that it must be active rather than passive. A process may include several distinct types of temporary data including function parameters, return addresses, and local variables. A process is also comprised of four sections: stack, heap, data, and text.  Whenever a process is executed, it changes its state and may only hold one state at a time. The list below shows all the potential states that a process may be in.  New - The process is being created.  Running - Instructions are being executed.  Waiting - The process is waiting for some event to occur (such as an I/O completion or reception of a signal).  Ready - The process is waiting to be assigned to a processor.  Terminated - The process has finished execution."  A process control block, also known as a task control block "serves as the repository for any information that may vary from process to process." (Silberschatz et al. 2014) The process control block is