CS 490 Final
granularity from largest to smallest
1) independent parallelism 2) course/very coarse grained parallelism 3) medium-grained parallelism 4) fine grained parallelism
What are the two general categories of system access threats?
1) intruders 2) malicious software
Three types of intruders
1) masqueraders 2) misfeasor 3) clandestine user
2 basic strategies of file storage allocation
1) variable sized, contiguous portions 2) block oriented
- Also known as a buffer overrun - Defined in the NIST (National Institute of Standards and Technology) Glossary of Key Information Security Terms as: "A condition at an interface under which more input can be placed into a buffer or data-holding area than the capacity allocated, overwriting other information. Attackers exploit such a condition to crash a system or to insert specially crafted code that allows them to gain control of the system" - One of the most prevalent and dangerous types of security attacks
Buffer overflow attacks
Characteristics of priority disk scheduling policies
Control of scheduling is now outside of the disk manager Does not (not intended to) optimize disk utilization Poor for general purposes
Type of hypervisor - Called a bare-metal hypervisor - Loaded as a software layer directly on the host. There is no other OS on the host. - Hypervisor directly controls the physical resources of the host - Exampes: VMWare, Xen
Type 1 Hypervisor
Type of hypervisor - Runs as a software module on top of an existing, traditional OS - Hypervisor relies on calls to the underlying host OS rather than directly managing the hardware - Hypervisors make it easy to create and experiment with VMs. You don't have to install a new OS on your PC to use them - Examples: Virtual box, VMWare workstation
Type 2 hypervisor
Fixed block size allocation strategy - Linux uses a block oriented strategy - A file system is created with a table containing records called inodes. - Each inode in the file system records information about a single file. - The number of inodes you initialize the volume with is the maximum number of files you can create, no matter how much storage is free - A directory in linux is just a file with a list of file inodes identifiers in it - An inode is a data structure of a fixed size, generally 128 to 256 bytes depending on the wordsize of your system.
UNIX/LINUX inode strategy
General policies for disk scheduling
FIFO Shortest Seek Time First Priority SCAN/LOOK LIFO C-SCAN
Fixed block size allocation strategy - A single, contiguous set of blocks is allocated at creation - Requires file size up front, how can files grow in size? - Simple for file system to keep up with. A file table entry only needs a start block address and a size. - Best for sequential access processing (tape drive) - External fragmentation - as files are deleted, leaves contiguous gaps of varying sizes - Compaction - process of reallocating contiguous files to one end of storage and move free storage to other side
contiguous allocation
File structure: - Collection of files storing record structures - Often enterprise level databases manage their own file systems independently of the operating system
database
Dispatching approach in medium-grained concurrency - Basically an extreme form of gang scheduling. - You can dedicate processors to an application. Used in highly parallel systems. - Eliminates process switching among cores, but also removes the ability to load balance.
dedicated processor assignment
- Identifies a user to the system - Associated with each user there can be a profile that specifies permissible operations and file accesses - The operating system can then enforce rules based on the user profile - The database management system, however, must control access to specific records or even portions of records - The database management system decision for access depends not only on the user's identity but also on the specific parts of the data being accessed and even on the information already divulged to the user
File system access control
An operating system will provide system operations (library calls) to access the features of each file structure it supports. The file management system of the operating system is the gateway between your processes and the files the OS manages
File system support
Level of granularity - Fine grained parallelism is used in highly specialized (hardware) systems and programming languages. - Parallelism is performed at the instruction level. (This means that the same instruction is being executed on all of the processors at the same time - in lock-step.) - Examples are supercomputers and vector processors. Many problems, such as weather forecasting and image processing benefit from this fine-grained level of parallelism.
Fine-grained parallelism
Multiprocessor system classification - Specialized processors are controlled by the main processor and provide services to it - Examples are i/o processors (disk controller) and graphics processors
Functionally Specialized Processors
Dispatching approach in medium-grained concurrency A refinement of the load sharing approach where: - The OS maintains a local ready queue for each processor AND a shared global ready queue. - A local processor queue is used by threads that are bound to a specific processor. Allows a processor to give preference to bound threads, but choose ready processes when it is idle - Lowers the cost of context switching when threads are discouraged from moving to a different core. And it groups related threads near each other.
Gang scheduling
_________ _________ programming languages usually wrap these OS Specific API calls so that your program can be OS independent. For example: C implements printf() for you to use to format your output. The internal code for printf will call the write() operation for whatever OS your compiler is supporting to send those characters to a file.
High level
Type of IDS that monitors the characteristics of a single host and the events occurring within that host for suspicious activity
Host-based IDS
It is sometimes convenient to perform input transfers in advance (anticipation) of requests being needed and to perform output transfers some time after the data is ready. Buffering data into memory frames is a technique that allows this. Buffering helps smooth out delays associated with bursts of i/o in a process.
I/O Buffering
There are several forms of RAID that are designed to: - provide _________ access to data - keep data ________ - or a combination of both
faster, safe
Category of malware - Self-contained programs that can be scheduled and run by the operating system - Worms and bot programs are examples
independent
Level of granularity - There is no explicit synchronization among processes - Each represents a separate, independent application or job - This is a typical time-sharing system or general purpose desktop system - A multiprocessor provides the same services as a multiprogrammed uniprocessor (i.e. you can schedule processes to run, only now >1 cpu) - Improves average response time to users due to having extra capacity.
independent parallelism
The ___________ _________ _________ are used if a file takes up more than N blocks on disk - Single Indirect pointer - Points to a block. That block has pointers to the actual blocks the file is using. So if a block is 1024 in size (with 4 byte words) then a single indirect block will store 256 block addresses. 1 level of indirection - Double indirect pointer - This points to a block that has pointer to blocks containing block addresses. 2 levels of indirection. - Triple indirect pointer - 3 levels of indirection
indirect block pointers
- Further security improvement may be possible by installing and configuring additional security tools such as antivirus software, host-based firewall, IDS or IPS software, or application white-listing - Some of these may be supplied as part of the operating systems installation, but not configured and enabled by default - Given the wide-spread prevalence of malware, appropriate antivirus is a critical security component - IDS and IPS software may include additional mechanisms such as traffic monitoring or file integrity checking to identify and even respond to some types of attack• White-listing applications limits the programs that can execute in the system to just those in an explicit list
install additional security controls
RFC 4949 (Internet Security Glossary) defines ____________ _____________ as a security service that monitors and analyzes system events for the purpose of finding, and providing real-time or near real-time warning of, attempts to access system resources in an unauthorized manner
intrusion detection
A legitimate user who accesses data, programs, or resources for which such access is not authorized, or who is authorized for such access but misuses his or her privileges
misfeasor
New issues arise in scheduling when ________ _______ 1 processor or core is available
more than
Imagine that all requests are on the same track. Then we only incur the seek time ________
once
Some systems use ______________________ to enhance the performance of VMs
paravirtualization
The Hypervisor manages the execution of all of the vms. It allows you to "___________" your vm on/off. It translates i/o requests from the vms to the host and back
power
Scheduling on a multiprocessor issue: - Which process should be dispatched from the ready queue to the running queue(s)? - In coarse-grained systems, it actually becomes much less important to "perfect" the dispatching algorithm. Because you have more processors to work with. - First Come First Serve with a priority scheme works very well in a system like this. Why?
process dispatching
A hypervisor lets you create a VM and configure it with _____________, some amount of ram, some size of "disk", among other features.
processors
Technique for performing I/O - In early systems, the processor issued commands, individual steps, to an i/o device. The process issuing the commands busy waited for them to execute. - Very inefficient use of the processor to control i/o as well as general computation in processes, because i/o devices are comparatively slow.
programmed I/O
Remember, the typical OS is going to maintain a _________ of i/o requests on behalf of all of the processes requesting i/o in your system. So for a single disk, there will be a number of incoming i/o requests
queue
Examples of something the individual is (static biometrics) as a means of authentication
recognition by fingerprint, retina, and face
Examples of something the individual does (dynamic biometrics) as a means of authentication
recognition by voice pattern, handwriting characteristics, and typing rhythm
File structure: - A file is composed of multiple records. Records have fields, like objects. - You can read/write one record at a time. - Sequential access, one record at a time in sequence. - Some record based systems support indexing where you can move directly to an indexed record
records
Type 1 Hypervisor image
refer to image
Type 2 Hypervisor image
refer to image
The time required for addressed sector in a track to rotate into position
rotational delay
Compile time defense - Programmers need to inspect the code and rewrite any unsafe coding constructs - An example is the OpenBSD project which produces a free, multi-platform 4.4BSD-based UNIX-like operating system - Among other technology changes, programmers have under-taken an extensive audit of the existing code base, including the operating system, standard libraries, and common utilities
safe coding techniques
Now imagine that all requests are scattered across the tracks. Then we incur much more ______ _____ in between these accesses.
seek time
The time required to move the disk arm to the desired track
seek time
IDS component - Responsible for collecting data - The input for a sensor may be any part of a system that could contain evidence of an intrusion - Types of input to a sensor include network packets, log files, and system call traces
sensors
Characteristics of FIFO Disk scheduling policies
simple, fair, suffers from random seek times
Compile time defense - An effective method for protecting programs against classic stack overflow attacks is to instrument the function entry and exit code to set up and then check its stack frame for any evidence of corruption - Stackguard, one of the best-known protection mechanisms, is a GNU Compile Collection (GCC) compiler extension that inserts additional function entry and exit code
stack protection mechanisms
IDS component - Enables a user to view output from the system or control the behavior of the system - May equate to a manager, director, or console component
user interface
Characteristics of Shortest Seek Time First (SSTF) disk scheduling policy
Select the disk i/o request that requires the least arm movement distance Drawback: seeks will tend to cluster around an area, starving the outliers that are farther away
How is free space managed?
- A larger disk -> larger number of blocks -> larger size of a free block table• - It makes more sense to store free block list partially in memory, and page it in and out as needed. - What happens if the file system crashes or powers down while the free block list is being changed? You could scan all of the information in the inode pointers to recreate the list of blocks that are unused.
Characteristics of SCAN disk scheduling policy
- Alleviates the problems with random seek times (FIFO) and starvation (LIFO, SSTF) - Requires the arm to move in one direction at a time - Satisfy all requests along the path of the arm. When it reaches the edge, reverse course and process all requests along the way back. - LOOK stops moving in a direction when there are no more to process there
Characteristics of C-SCAN (circular SCAN) disk scheduling policy
- Improves the fairness of SCAN - Disk arm always works on requests in one direction only. - When it reaches the end/edge, the arm picks up, moves back to the beginning and starts over there for another pass in - Linux uses a variation of SCAN called Elevator
What are the basic steps to use to secure an operating system?
- Install and patch the operating system - Harden and configure the operating system to adequately address the identified security needs of the system by: •Removing unnecessary services, applications, and protocols •Configuring users, groups and permissions •Configuring resource controls - Install and configure additional security controls, such as antivirus, host-based firewalls, and intrusion detection systems (IDS), if needed - Test the security of the basic operating system to ensure that the steps taken adequately address its security needs
What are the goals of file system support?
- Meet user storage requirements - Guarantee that files are not corrupted - Optimize performance of file access - Provide standard i/o interfaces to the user processes for working with files - Provide security for multi-user systems
What if your application needs to be able to run on a different or multiple operating systems?
- Think about testing software for different platforms. Think about patching legacy software. - You can either buy the individual platforms as machines running the desired OSs - You can configure one machine to dual boot/multi boot into different OSs - Or, you can configure vms to run on the machine you have
What are the goals of I/O?
- We want our OS to be able to manage i/o efficiently and generally. - In other words, the OS can use techniques to speed up i/o (read/write) and it should have general purpose behavior for classes of devices. - For example - using available memory frames to buffer i/o speeds up a process' ability to use some of the data while waiting for the rest - For example - linux categorizes devices as block or stream oriented. Block devices read/write entire blocks at a time, while stream oriented handles one byte at a time, regardless of the actual device type.
What are the two main approaches to virtualization?
1) Virtual machines 2) Containers (usually designed to all run within the same host operating system)
What are the design goals of firewalls?
1) All traffic from inside to outside, and vice versa, must pass through the firewall. This is achieved by physically blocking all access to the local network except via the firewall 2) Only authorized traffic, as defined by the local security policy, will be allowed to pass. Various types of firewalls are used, which implement various types of security policies 3) The firewall itself is immune to penetration. This implies the use of a hardened system with a secured operating system. Trusted computer systems are suitable for hosting a firewall and often required in government applications
Scheduling on a multiprocessor must consider what three issues?
1) Assignment of processes to processors 2) Use of multiprogramming on individual processors, and 3) Dispatching of a process.
4 compile time defenses
1) Choice of programming language 2) Safe coding techniques 3) Language extensions and use of safe libraries 4) Stack protection mechanisms
What are two broad classifications for countermeasures?
1) Compile-time defenses, which aim to harden programs to resist attacks 2) Runtime defenses, which aim to detect and abort attacks in executing programs
What are the 3 fixed block size allocation strategies?
1) Contiguous allocation 2) Chained allocation 3) Hierarchical allocation (inode)
File system architecture (lowest to highest level)
1) Device drivers 2) Basic File System (physical i/o level) 3) Basic I/O supervisor 4) Logical I/O layer 5) Access Methods: API
3 runtime techniques for defense
1) Executable address space protection 2) Guard pages 3) Address space randomization
Intrusion detection systems (IDSs) can be classified as: (2)
1) Host-based IDS 2) Network-based IDS
Two steps of an authentication process?
1) Identification step 2) Verification step
In medium grained concurrency, often a task is a collection of cooperating, lightweight processes or threads. Dispatching in this environment can take some different approaches than basic FCFS. What are the 4 basic approaches?
1) Load sharing 2) Gang scheduling 3) Dedicated processor assignment 4) Dynamic scheduling
The process of security maintenance includes the following steps: (5)
1) Monitoring and analyzing logging information 2) Performing regular backups 3) Recovering from security compromises 4) Regularly testing system security 5) Using appropriate software maintenance processes to patch and update all critical software and to monitor and revise configuration as needed
What are the two categories of malicious software?
1) Parasitic 2) Independent
What are the 4 desirable properties of files?
1) Permanence 2) Shareable between processors 3) Sharing permissions can be configurable 4) Structure and convenience for certain applications
What are the 3 techniques for performing I/O?
1) Programmed I/O 2) Interrupt-Driven I/O 3) DMA - Direct Memory Access
What are the three main IDS components?
1) Sensors 2) Analyzers 3) User interface
What are the 3 I/O buffering techniques?
1) Single buffering 2) Double buffering 3) Circular buffering
What are 4 means of authentication?
1) Something the individual knows 2) Something the individual possesses 3) Something the individual is (static biometrics) 4) Something the individual does (dynamic biometrics)
Steps of operating system installation: initial setup and patching
1) System security begins with the installation of the operating system 2) Ideally new systems should be constructed on a protected network 3) The initial installation should comprise the minimum necessary for the desired system, with additional software packages included only if they are required for the function of the system 4) The overall boot process must also be secured 5) Care is also required with the selection and installation of any additional device driver code, since this executes with full kernel level privileges, but is often supplied by a third party
To exploit any type of buffer overflow the attacker needs what two things?
1) To identify a buffer overflow vulnerability in some program that can be triggered using externally sourced data under the attackers control 2) To understand how that buffer will be stored in the processes memory, and hence the potential for corrupting adjacent memory locations and potentially altering the flow of execution of the program
File system architecture type - Layer closest to user programs - Provides a programming interface to the file system (operating system function libraries provided by your OS but also used by high level languages to interact with files)• OPEN, CLOSE, CREATE, PRINTF, etc...
Access Methods: API
IDS component - Receive input from one or more sensors or from other analyzer - Responsible for determining if an intrusion has occurred - May provide guidance about what actions to take as a result of the intrusion
Analyzers
File system architecture type - Deals with blocks of data that are exchanged between a disk or tape drive and the system - Concerned with placement of blocks onto the storage media - Considered part of the OS
Basic file system (physical i/o level)
Compile time defense - One possibility is to write the program using a modern high-level programming language that has a strong notion of variable type and what constitutes permissible operations on them - The flexibility and safety provided by these languages does come at a cost in resource use, both at compile time and also in additional code that must execute at runtime
Choice of programming language
__________ ________ Environments use VM technology as its core foundation
Cloud Computing
Level of granularity - There is synchronization among processes, but at a gross level - Each process is part of a set of concurrent processes, cooperating to perform a task or set of tasks. The OS is making decisions on dispatching processes to CPUs. - Can be used on a multiprocessor system with few or no changes to software - If interaction (communication) between processes is very little, then a distributed system can provide the support (EX: SETI SEARCH)
Coarse/Very Coarse-Grained Parallelism
Technique for performing I/O - Processor sends a request for a block of data to be transferred into a frame or frames in memory and is only interrupted when the DMA device has completed the entire transfer.
DMA - Direct Memory Access
Technique for performing I/O - The processor issues the i/o commands to the device, while the process waits in a blocked state and can be reactivated when the i/o device interrupts the system to indicate the i/o request is finished.
Interrupt-driven I/O
________ uses a hybrid (of static and dynamic) approach - each processor has its local queue of processes, the OS periodically load-balances to relieve back log or improve utilization
Linux
- Provides real-time and non-real time scheduling - FIFO - first in first out system for real time threads and a RR - round robin system for real time threads. - Higher priorities preempt lower priorities - Non real-time threads have a set of priorities in a lower band than real-time. - Maintains a queue of processes PER processor. Each processor can perform basic round robin techniques to time slice the running processes. - Periodically load balances by moving processes among processors
Linux scheduling
File system architecture type - Enables applications to access the concept of logical files instead of programs having to deal with the block structure of the actual hardware device - IE - you read and write lines from a file, not blocks (usually) - Maintains basic information about files (size, access data, location, name, directories)
Logical I/O layer
Multiprocessor system classification - Consists of a collection of relatively autonomous system - Each processor has its own main memory and i/o channels - Distributed systems are managed by special purpose distributed operating systems (including cloud systems). These are covered in chapter 16 and in advanced OS courses.
Loosely coupled AKA Distributed Multiprocessor AKA Cluster
Level of granularity - A single application can be implemented as a collection of threads (aka lightweight processes) - The programmer is usually defining explicit parallelism - High degrees of coordination or synchronization is used. There are frequent interactions among the processes or threads in the task. - The operating system must make decisions on when to dispatch a process or a thread to a processor.
Medium-grained parallelism
Scheduling on a multiprocessor issue: - When processes are assigned to ready queues, the next question is should that processor be multiprogrammed? (I.E. interleave multiple processes on that core?) - It is fairly easy to make decision for coarse-grained parallelism. Because each task is an individual process, they can use the same context switching as a uniprocessor
Multiprogramming on individual processors
Type of IDS that monitors network traffic for particular network segments or devices and analyzes network, transport, and application protocols to identify suspicious activity
Network-based IDS
Category of malware - Fragments of programs that cannot exist independently of some actual application program, utility, or system program - Viruses, logic bombs, and backdoors are examples
Parasitic
- Creates Fault Tolerance in striped drives - Calculates info about data stored in two drives and stores on a third. - If a drive fails, then the data can be rebuilt for it from the parity blocks. - Safer, but slower and requires more storage - Distributed parity distributes parity data across all drives in the array
Parity
Approach to assignment of processes to processors in which - The kernel functions can execute on any processor. - In fact, the functions can be executed in multiple processes that can be scheduled on any processor and moved. - A processor selects processes from the global queue of processes. - ADV/DIS?
Peer approach
What happens in the identification step in authentication?
Presenting an identifier to the security system
What happens in the verification step in authentication?
Presenting or generating authentication information that corroborates the binding between the entity and the identifier
- Commonly stands for Redundant Array of Inexpensive Disks (or, Redundant Array of Independent Drives) - A RAID puts together two or more separate drives that appear to behave as a single drive - A RAID distributes data across volumes
RAID
Raid level: - Blocks are Striped, No Mirror, No Parity - Fastest - No protection from Disk failure - Requires 2 or more disks
RAID 0
Raid level: - Blocks Mirrored, No stripe, No Parity - Safest - Most disk failure protection - Best for critical data where access speed is not an issue - Requires 2 or more disks
RAID 1
Raid level: - Blocks Mirrored and Striped - Fast and Safe - Requires 4 or more disks
RAID 1+0 (10)
Raid level: - Blocks are Striped, Dedicated Parity - Fast and Safe - Best for General Use on SSDs - Fast Read/Write of large files - Requires 3 or more disks
RAID 4
Raid level: - Blocks Striped, Distributed Parity - Best for General use on HDDs - Fast Read/Write of large files - Requires 3 or more disks
RAID 5
Raid level: - Similar to RAID 5 with extra parity recovery information - Allows for the failure of 2 disks - Slightly slower writes - Requires 4 or more disks
RAID 6
What's the goal of disk scheduling policies?
Reduce average time spent on seeks
What are the contents of an inode?
Refer to image (note: file name is not part of a file)
Suppose your system has a block size of 1024 bytes (assume 4 byte words - a single word can hold the address of a single block on disk). Suppose your iNode has 10 direct block pointers and the 3 indirect pointers. How large of a file could your file system support using this configuration?
Referring to the table below, for each level of indirection stored in the inode table, there are a certain number of blocks that can be referenced at each level. So for example, the direct level of referencing can identify 10 blocks for a file (or 10K bytes of storage space). For each level of indirection the number of blocks (and corresponding space) are given. •Therefore, the largest file in this system can be 16G + 64M + 256K + 10K in size.
- The system planning process should identify what is actually required for a given system so that a suitable level of functionality is provided, while eliminating software that is not required to improve security - When performing the initial installation the supplied defaults should not be used, but rather the installation should be customized so that only the required packages are installed - Many of the security-hardening guides provide lists of services, applications, and protocols that should not be installed if not required - Strong preference is stated for not installing unwanted software, rather than installing and then later removing or disabling it as many uninstall scripts fail to completely remove all components of a package • Should an attacker succeed in gaining some access to a system, disabled software could be re-enabled and used to further compromise a system • It is better for security if unwanted software is not installed, and thus not available for use at all
Remove unnecessary services, applications, and protocols
Should the assignment of a process to a processor be static or dynamic?
STATIC: a process stays with its assigned processor Therefore each processor has its own queue of processes ADV/DIS? DYNAMIC: use a global ready queue instead Works well when memory is shared by all processors
Characteristics of LIFO disk scheduling policy
Simple Based on the idea that new requests happen near recent ones (locality) However, early processes tend to move out of range and starve
I/O Buffering technique - When a process issues an i/o request, the OS transfers data into the OS. I/O is transferred in / out of that buffer, then the buffer is exchanged into the process' frame(s) of memory - Meanwhile, the OS can signal another buffer to begin transfer (looking ahead, prefetching, etc). - The user process can be working with one block of data while the next block is being read (or older block is being written out) - At any point in time, the user process is working with a single buffer and the os has a single buffer on hand to dedicate to that process' next transaction
Single buffering
______________ involves managing computer resources so that each process representing a virtual machine sees its resources as if only it were using the hardware. A virtual machine is unaware that other vms run in the same environment
Virtualization
- Designed to be responsive to needs of a single user in a highly interactive environment. - 2 priority bands: real-time and variable - Threads requiring immediate attention (such as communications) are in real-time band. And have higher priority over variable band. - Higher priority threads preempt lower priority - Threads may run on any processor. A ready thread is dispatched to the next available core (load sharing) - Attempts to assign a ready thread to the last processor it ran on in the hopes that its data is still in that local cache.
Windows scheduling
Examples of something the individual knows as a means of authentication
a password, a personal identification number (PIN), or answers to a prearranged set of questions
OS is not the only thing virtualization is useful for. There are also virtual ______________, things like software emulation of real-world hardware such as routers or network cards.
appliances
Traditionally, _____________ have run directly on an OS on a computer that was running only that single operating system
applications
An _____________ function monitors and keeps a record of user accesses to system resources
auditing
In most computer security contexts, user _______________ is the fundamental building block and the primary line of defense
authentication
- Implements a security policy that specifies who or what may have access to each specific system resource and the type of access that is permitted in each instance - Mediates between a user and system resources, such as applications, operating systems, firewalls, routers, files, and databases
access control
Runtime defense - A runtime technique that can be used to thwart attacks involves manipulation of the location of key data structures in the address space of a process - Moving the stack memory region around by a megabyte or so has minimal impact on most programs but makes predicting the targeted buffer's address almost impossible - Another technique is to use a security extension that randomizes the order of loading standard libraries by a program and their virtual memory address locations
address space randomization
A security administrator maintains an _______________ database that specifies what type of access to which resources is allowed for this user. The access control function consults this database to determine whether to grant access
authorization
With paravirtualization, the guest OS are a special version modified to make calls to the hypervisor where appropriate. So they are '_________' of the hypervisor's existence. For example, you might have a special version of linux designed to run on Amazon VMs. (Which is what they do. You have to use their special versions of OSs)
aware
File system architecture type - Initiates /terminates i/o on behalf of processes - Maintains control structures to deal with devices, file statuses, and queues for scheduling - Selects device on which file i/o will be performed - Manages i/o buffers - Considered part of the OS
basic I/o supervisor
Strategy of file storage allocation - Small, fixed-size partitions - Flexible, eliminates external fragmentation - Allocated only the blocks as needed
block oriented
The _________ __________ in an inode store a block address from the file system device - Many files consume more than one block of storage space - The number of blocks a file requires is dependent on the block size of the storage device - For example a 2 KB file will need 2 blocks on a device whose block size is 1024 bytes - Direct Block pointer 1 points to the 1st block of the file, Direct Block pointer 2 points to the 2nd block of the file, and so on.
block pointers
The hypervisor is the software that acts as a ________ or traffic controller between the VM guests as they request use of resources from the physical host machine.
broker
Fixed block size allocation strategy - Not contiguous - The file table keeps track of the first block assigned to a file - Each block contains a pointer to the next allocated block - No external fragmentation - Files can grow and shrink in size, easily - Advantage - a corrupted file system can be reconstructed by following the chain links to rebuild the list of blocks used by files and find the free blocks in the system.
chained allocation
I/O buffering technique - This is basically an extension from 2 to N buffers. - The OS reserves N system buffers for transacting i/o on behalf of a user process. When one buffer fills and is being transferred to the user process' memory space, the next buffer in line can be used to continue working with the i/o devices. - This works well for systems with i/o devices of varying speeds. If the OS has a large reserve of memory to work with, it can allocate several buffers to each process.
circular buffering
An individual who seizes supervisory control of the system and uses this control to evade auditing and access controls or to suppress audit collection
clandestine user
File system architecture type - Reside at the lowest level - Communicate directly with peripheral devices and controllers - Responsible for starting i/o on a particular device - For file systems, typical devices are tape drives, disks, etc - Device drivers are either part of the operating system or very tightly coupled to it
device drivers
- Processor speeds have far out-stripped the speed of disk access - In general, disk speeds are about 4 orders of magnitude slower than accessing main memory - Disk performance is Vital. - THE OS USES THE DISK TO SWAP PAGES IN/OUT OF MEMORY FRAMES WHEN IMPLEMENTING VIRTUAL MEMORY SYSTEMS - Emphasize developing approaches to improve disk i/o performance
disk scheduling
I/O buffering technique - The OS reserves two system buffers for transacting i/o on behalf of a user process. When one buffer fills and is being transferred to the user process' memory space, the 2nd buffer can be used to continue working with the i/o devices. - This allows the OS to continue filling a buffer while the user buffer is being transferred over.
double buffering
Dispatching approach in medium-grained concurrency - Allow the programmer, via programming languages to perform their own thread scheduling
dynamic scheduling
Virtual Technology enables a single computer to simultaneously run multiple ____________ environments containing different Operating Systems.
emulated
1) Processor directly controls a peripheral device or directly commands an i/o module attached to that device. Programmed i/o. 2) Processor sends instructions to devices as in 1), but interrupts are now used to eliminate busy waiting for those instructions to complete 3) The i/o module/device is given direct access to the memory via DMA. It can now move an entire block of data without involving the processor, once started 4) The i/o module is enhanced by giving it a processor with a specialized instruction set for the device it manages. Now a single command can initiate a sequence of instructions 5) The i/o module is enhanced with its own local memory and ability to implement customizable driver software to control a device. This is a specialized processor we mentioned in the context of multiprocessing architectures.
evolution of the I/O function
Runtime defense - A possible defense is to block the execution of code on the stack, on the assumption that executable code should only be found elsewhere in the processes address space - Extensions have been made available to Linux, BSD, and other UNIX-style systems to support the addition of the no-execute bit
executable address space protection
- User applications are concerned with records and streams and the logical concept of a single file. - But I/O is done at a lower level, on a block bases. - I.E. a physical file is composed of a sequence of physical blocks on a device. - File Management requires the ability to 1) Allocate files to free blocks in secondary storage 2) Manage the free storage 3) Manage the growth of a file's size - File Systems also have to manage information about each file stored on the device. That information is stored in some of the blocks on the physical device and is also permanent. If the OS is shut down, you don't lose track of the files on your disk!
file management
First, we will review the categories of multiprocessors and types of ___________ (concurrent programming). Then we will review process scheduling options for the moderately concurrent systems.
granularity
a term related to the level of synchronization required to compute parallel tasks. It is also a measure of concurrency in software systems.
granularity
Runtime defense - Caps are placed between the ranges of addresses used for each of the components of the address space - These gaps, or guard pages, are flagged in the MMU as illegal addresses and any attempt to access them results in the process being aborted - A further extension places guard pages between stack frames or between different allocations on the heap
guard pages
these are the "guest" machines on your host. A host can support some number of VMs running at the same time. A true VM host needs lots of memory and processor capability. - In a true VM environment, each guest machine can run its own OS. - So I can create a linux machine, a windows machine and an android machine on my PC at home if I have enough memory.
guest
these are your normal programs that run on the guest. For example, if I have a Windows VM, I could run Microsoft Word on it. Or any software designed to run on Windows OS.
guest applications
this is the computer the hypervisor runs on. The host may have a traditional operating system installed such as windows or it may only have a specialized hypervisor OS.
host
Approach to assignment of processes to processors in which - there can be combinations of the traits from the two approaches to form different hybrid approaches to assigning processes to processor
hybrid approaches
the virtual machine monitor that sits between your VMs and the actual hardware, acting as a resource broker
hypervisor
Examples of something the individual possesses as a means of authentication
include electronic keycards, smart cards, and physical keys (Referred to as a token)
Compile time defense - There have been a number of proposals to augment compilers to automatically insert range checks on pointer references - Libsafe is an example that implements the standard semantics but includes additional checks to ensure that the copy operations do not extend beyond the local variable space in the stack frame
language extensions and use of safe libraries
Virtualization provides a __________ between a virtual machine's software and the physical hardware of the machine that supports vms.
layer
Dispatching approach in medium-grained concurrency - In this approach processes are not assigned to a particular processor. Each processor, when idle, selects a thread or process from a global queue of ready tasks. - ADVANTAGES? - The Global Ready Queue can be maintained using one of the strategies from chapter 9: FCFS, smallest threads first, priority - are all common approaches - DISADVANTAGES?
load sharing
Programs that exploit vulnerabilities in computing systems. Also referred to as malware
malicious software
An individual who is not authorized to use the computer and who penetrates a system's access controls to exploit a legitimate user's account
masquerader
Approach to assignment of processes to processors in which - OS kernel functions are always run on a dedicated processor. - Other processes may run on the other processors - The master manages all other processes - When a process needs an OS service it sends a request to the master process and waits - ADV/DIS?
master-minion approach
________ __________ each contain a copy of the entire drive. Provides protection of data through redundancy. If one drive fails, the other(s) still have a copy of the data
mirrored volumes
File structure: - This is the simple text file we are used to programming with - You start reading, byte by byte from the beginning to the end - Sequential Access, you can move forward or backward a certain number of bytes (file seeks) - No formal structure other than bytes
stream
A _________ __________ spreads data from a single volume over two or more drives. Each drive contains only a portion of a file. When reading or writing, the request gets sent to all drives at same time and each drive works only on its portion of the file. This system FAILS if one drive fails!
striped volume
What's the assumption in the assignment of processes to processors?
the architecture of the multiprocessor is uniform. Therefore, all processors are the same and can be treated as a pool of resources. Assign processes on demand.
Some systems are capable of treating ________ as individually schedulable units (like processes)
threads
Multiprocessor system classification -A set of processors that share a common main memory and are under the integrated control of a single operating system.
tightly coupled multiprocessor
The total transfer time is a sum of the seek time, the rotational delay and the byte transfer time. The objective of disk management techniques is to reduce the average i/o transaction time. Seek Time is one factor that we can reduce with good policies.
transfer time
the time to transfer the desired bytes (function of the size of a sector and the rotational speed of the disk)
transfer time
Or, in a non-paravirtualization system, the guest OS are just the original off the shelf version and the hypervisor has to work to __________ the OS calls and interpret them. The guest OS are not aware of the hypervisor's existence.
trap
The hypervisor "________" OS system calls in the vms and translates them into the appropriate calls
traps
Strategy of file storage allocation - Storing a file in a single or very few large contiguous portions allows for dynamic partitioning of the storage system, and better retrieval performance (since all in same area) - Can use best fit, worst fit, etc... just like memory partitions. Suffers from fragmentation!
variable sized, contiguous portions
RFC 4949 defines user authentication as the process of ______________ an identity claimed by or for a system entity
verifying
A machine that can support multiple ________ servers requires less physical space, fewer cables, less power consumption than if we used multiple physical server computers.
virtual
Today there are more _________ servers deployed in the world than physical servers, via cloud platforms.
virtual
From a user's point of view, the file system is a very _______ and __________ part of an operating system
visible, important