Term
|
Definition
write changes immediately to disk is slow but consistent |
|
|
Term
|
Definition
| a named collection of related information recorded on secondary storage |
|
|
Term
|
Definition
|
|
Term
|
Definition
| what the user puts in the file |
|
|
Term
|
Definition
| the attributes the OS keeps track of, such as name, location, size, etc |
|
|
Term
|
Definition
| provides names for files, is a mapping from each name to a specific file or another directory (by inode number) |
|
|
Term
|
Definition
| a mapping from a file name to a directory or file |
|
|
Term
|
Definition
| a mapping from a file name to another file name |
|
|
Term
|
Definition
| the OS allocates disk space, set up metadata, update director |
|
|
Term
|
Definition
| creates a hard link between a new name and directory |
|
|
Term
|
Definition
| removes a name for a file from its directory |
|
|
Term
|
Definition
| is given an fd and checks to see if the file is already open. If it isn't, it copies the fd into the open file table, increments open count, updates the process's file table, returns fd? |
|
|
Term
|
Definition
| removes the entry for the file in the process's file table, decrements open count, removes the entry in the system wide file table if open count is 0 |
|
|
Term
|
Definition
| reads a certain number of bytes from an offset into a buffer in bytes |
|
|
Term
|
Definition
| is similar to read, but copies the buffer to the file |
|
|
Term
|
Definition
| updates the file pointer (a certain position in the file) |
|
|
Term
|
Definition
| contains file system metadata |
|
|
Term
|
Definition
| describes where the file is on disk and the attributes of the file |
|
|
Term
| Continuous allocation (files) |
|
Definition
| has sequential allocation time, has external fragmentation |
|
|
Term
| Linked allocation (files) |
|
Definition
| has no random access, worse sequential time than continuous, eliminates external fragmentation, supports adding to the end because file header also points to the last file block |
|
|
Term
| FAT file system is an example of |
|
Definition
| linked allocation because it has the MFT which is a linked list of data blocks. Has limited file size and poor random access |
|
|
Term
| Direct Allocation (files) |
|
Definition
| File header points to each data block, supports growth and random access, has little fragmentation |
|
|
Term
| Indexed Allocation (files) |
|
Definition
inode holds an array of block pointers for each file Allocates data block only on demand This is pretty much our project
Use multilevel indexing to handle large files |
|
|
Term
|
Definition
think of this as a tree where the root is the file's inode
the way it works is you have some pointers that point directly to data blocks, one that points to another block (1st level) that holds pointers to data blocks, another pointer that points to a 2nd level indirection block that holders pointers to indirection blocks which holds pointers to data blocks, and a last pointer (3rd level indirection block) to a 2nd level indirection block that holds pointers to indirection blocks that hold pointers to data blocks |
|
|
Term
|
Definition
| stores a file's metadata and holds an array of block pointers to all the data blocks being used by a file |
|
|
Term
| Fast File System (FFS) and BigFS are examples of |
|
Definition
|
|
Term
| Current working directory |
|
Definition
| the directory you're currently in so when you look for a file you don't have to start from the root, is cached to make finding a file easier |
|
|
Term
| FFS Block Group Placement |
|
Definition
| divide disk into block groups that stores bitmaps, inode array, and data blocks in each group |
|
|
Term
|
Definition
| applications have a smaller disk to work with and any write that goes to reserved space fails |
|
|
Term
|
Definition
| a tree structure that has a Master File Table. Each entry of the MFT has a data section made up of extents which are contiguous blocks on a track rather than single blocks |
|
|
Term
|
Definition
| delay writing the modified data. has better performance. can cause inconsistencies since data can be lost in a crash |
|
|
Term
|
Definition
| when the inode or data bitmap doesn't reflect the right changes. We don't care about the user data though |
|
|
Term
|
Definition
| is used to check the file system for any inconsistencies and attempts to fix them |
|
|
Term
|
Definition
| group actions together so they are atomic, durable, and serializable (transactions appear to happen one after the other) |
|
|
Term
| The problem with transactions is that it's difficult to achieve durability (once transactions happen, they stick) |
|
Definition
| To get durability, we need to be able to commit and roll back our transactions |
|
|
Term
| Write-ahead (transactions) |
|
Definition
| once a transaction begins, it will write changes to a log on disk and once it's finished, it will commit |
|
|
Term
| Write-behind (transactions) |
|
Definition
| will log all changes to disk (opposite to write ahead) |
|
|
Term
|
Definition
is a write-ahead logging system where you write all metadata changes to a log before sending them disk. Log only exists if there are still changes to be made Log has to have a commit before it's considered finished Once writes to disk are made, you update the log to reflect that |
|
|
Term
| Use barriers to force orderings on writes to disk since they can be scheduled out of order |
|
Definition
|
|
Term
|
Definition
is an array of of inexpensive disks that are boxed together to increase performance. Data blocks are split across multiple disks. Has different levels |
|
|
Term
|
Definition
Data is split across multiple disks increases throughput but any failure of one disk causes data loss |
|
|
Term
|
Definition
| data is copied on another disk. provides redundancy but is expensive |
|
|
Term
|
Definition
bytes of split across multiple disks has a parity disk that the disk controller uses to detect faults |
|
|
Term
|
Definition
| whole blocks split across disks with parity disk |
|
|
Term
|
Definition
| data and parity is distributed across all disks where a block on one disk is the parity of a block on another disk |
|
|
Term
|
Definition
| lowercase internet is an interconnected network |
|
|
Term
|
Definition
| is unreliable because it makes no effort to recover lost packets. Delivers packets from host to host |
|
|
Term
|
Definition
Delivers packets from process to process is bidirectional and reliable as it will retrieve lost packets Has a 3 step handshake |
|
|
Term
|
Definition
| an unsigned 32 bit integer |
|
|
Term
|
Definition
| connects a pair of processes and is reliable in that data flows between the two and will always be received by the destination process |
|
|
Term
|
Definition
the end point of a connection (kernel) an open file with an fd that lets you read/write to/from a network (user program) |
|
|
Term
|
Definition
| is socket:port where port is assigned by kernel unless it's a well known port such as the internet (80) or email (25) |
|
|
Term
|
Definition
an acknowledgement that something happened the sender send a message on a timer once the receiver receives a message it sends an ack and clears timer if timer goes off without an ack, then it starts over
Is optimized by saying acks represent multiple packets
Always ack the latest packet you received |
|
|
Term
|
Definition
defines a uniform format for host addresses provides a delivery mechanism |
|
|
Term
|
Definition
standard transfer unit have a header and a payload |
|
|
Term
|
Definition
| uses IP protocol to deliver packets from process to process |
|
|
Term
|
Definition
| where the OS stores info regarding TCP and protocol-specific information |
|
|
Term
|
Definition
prevents sender from overflowing receiver's buffer checks the size of the Rcvwindow to make sure there's room for more bytes |
|
|
Term
|
Definition
keep track of the Congestion window grows when acks are received (additive increase - increase CongWin by 1), shrinks when acks are lost (multiplicative decrease - half the CongWin) |
|
|
Term
|
Definition
| the phenomenon where the CongWin starts out with exponential growth because of additive increase but decreases by 1/2 after the loss of an ack |
|
|
Term
|
Definition
| application sends a message to a name and routing software turned this name into an Internet address and sends the message on its way |
|
|
Term
| Domain Naming System (DNS) |
|
Definition
a mapping between IP address and domain names Database contains millions of host entries which can be retrieved either by domain name or IP address |
|
|
Term
|
Definition
|
|
Term
|
Definition
| a 16-bit integer that identifies a process |
|
|
Term
| Servers
are
long‐running
processes |
|
Definition
|
|
Term
|
Definition
| creates a socket descriptor on the client |
|
|
Term
|
Definition
after building the server's internet address, calls connect() to make a connection with the server client process will block until connection is created |
|
|
Term
|
Definition
| associates socket with socket address |
|
|
Term
|
Definition
| checks to see if there are any clients trying to connect with the server |
|
|
Term
|
Definition
blocks waiting for a connection request returns when connection between client and server is created |
|
|
Term
|
Definition
| a set of physically separate processors that communicate with each other |
|
|
Term
|
Definition
processors share clock, memory, run one OS multiple process works on a task simultaneously, requires synchronization (explicit) |
|
|
Term
|
Definition
each processor has its own memory, runs its own OS. computers are connected by a network
extends message passing, communication is explicit, synchronization is implicit hard to program |
|
|
Term
|
Definition
| several processors share one address space (prevalent in parallel computing) so communication is implicit |
|
|
Term
| Event Ordering (Distributed Systems) |
|
Definition
| events are ordered by the sending and receiving of messages |
|
|
Term
| Atomicity in distributed systems |
|
Definition
|
|
Term
|
Definition
use log on each machine to track whether a commit happened
Phase 1: coordinator requests a transaction by sending a request to all participants The participants then decide if they want to commit or abort which they record to their logs and write to the coordinator.
Phase 2: coordinator will abort if it receives one abort, write this to its log, and sends aborts to its participants and it will commit if it gets all commits and writes to its log, and sends this to all its participants |
|
|
Term
|
Definition
used to elect a leader when the coordinator has died during a two phase commit.
basically you have numbered processes and whoever has the highest number will be the new coordinator. however processes that think they're the shit can campaign and during the campaign, the candidates see if they can take the coordinator's position without crashing. whichever one survives wins |
|
|
Term
|
Definition
servers export procedures for some set of clients to call abstracts send/wait-reply between client and server (high level) Lower level: server and client communicate through stubs
So the client will send its arguments over the network through a client sub, the server receives the arguments through a server stub, makes the procedure call and sends the return value back through the server stub and the client receives the return value through the client stub |
|
|
Term
| RPC is NOT message passing |
|
Definition
|
|
Term
|
Definition
Can't pass pointers Can't use global variables Weakly types languages |
|
|
Term
|
Definition
| provide access to files stored on remote disks |
|
|
Term
| Consistency semantics for distributed file systems |
|
Definition
| Says that clients are guaranteed to access the data they think they're accessing from a data store |
|
|
Term
| Coherence (distributed file systems) |
|
Definition
| the latest write should be saved to a memory location |
|
|
Term
| Staleness (distributed file systems) |
|
Definition
| bounds max delay between read and writes to one location |
|
|
Term
|
Definition
| the result of any execution is the same as if the operations of all the processes happened sequentially |
|
|
Term
| CAP theorem (strong consistency) |
|
Definition
| it's impossible in a distributed system to provide consistency, availability, and partition tolerance at the same time. You can only have 2 out of 3 |
|
|
Term
| FIFO consistency (consistency weakening) |
|
Definition
| writes done by a single process are seen by all processes in the order in which they were issued but writes from different processes may be seen out of order |
|
|
Term
| Naming in distributed file systems |
|
Definition
explicit: name includes file name and server implicit: name just includes file name (can get the server name by a mount table with a directory to server mapping |
|
|
Term
| Sun's Network File System |
|
Definition
caches data blocks, file headers for faster performance at both client and server side Clients poll the server for any file changes and if there are, server updates Uses a stateless protocol: server maintains no state about clients or open files. Instead this is maintained by the clients in case the server fails? Has 'at least once' semantics (idempotent ops where you can request as many times as you want without any adverse effects)
Advantage: is actually better than using the local file system because things can be done locally. Uses mounts so multiple file systems appear as one file system |
|
|
Term
|
Definition
components are known to fail supports huge files has a single master used for metadata metadata: file/chunk namespaces, file to chunk mapping |
|
|
Term
| Security is as strong as the weakest link |
|
Definition
|
|
Term
| Security should be economical and have little overhead |
|
Definition
|
|
Term
| Complete mediation (security) |
|
Definition
| apply security to ever access to an object |
|
|
Term
|
Definition
| assume that intruders know all about the design |
|
|
Term
| Separation of Privileges (security) |
|
Definition
| separates privileges for purpose from another. ex: separate access control on each file |
|
|
Term
| Least Privilege (security) |
|
Definition
| give bare minimum access rights |
|
|
Term
| Least Common Mechanism (security) |
|
Definition
| avoid sharing parts of the security mechanism among different users |
|
|
Term
|
Definition
| mechanism must be simple so people will use it |
|
|
Term
|
Definition
| default to lack of access so you won't have to worry about anything being lost |
|
|
Term
|
Definition
| page faults can result in correct guesses of passwords because of where the characters were stored on the page |
|
|
Term
| Use encryption to securely store passwords |
|
Definition
| Encrypt given passwords and then compare them to encrypted passwords stored |
|
|
Term
|
Definition
| adds complexity to guessing the functions that hash encrypted passwords |
|
|
Term
|
Definition
| secretly installed DRM software on computer so users couldn't burn CDs and also exposed the computers it was on |
|
|
Term
| Ken Thompson's Unix Trap Door |
|
Definition
| Edits the binary and compiler so that it will insert the bug back into the program allowing him the ability to log in anywhere |
|
|
Term
|
Definition
| use spawn mechanism, spreads |
|
|
Term
|
Definition
| are embedded in legit programs |
|
|
Term
|
Definition
| a worm that targeted the Iranian nuclear program. Spread by using removable drives on computers on private networks. Targets Siemen's software which affected communication between centrifuge machines causing them to falter |
|
|
Term
| Can insert info on low ordered bits of colors to put hidden messages |
|
Definition
|
|
Term
| OS is basically in an idle loop until it's woken up by an interrupt, system call or exception |
|
Definition
|
|