Operating Systems 2015F: Assignment 1: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Please submit your answers to the following on CULearn. This assignment is due before class on September 23, 2015. | Please submit your answers to the following on CULearn. This assignment is due before class on September 23, 2015. | ||
Choose the *most* accurate definition for the following terms/concepts: | Choose the *most* accurate definition for the following terms/concepts: | ||
# system calls | |||
# function calls | |||
# library calls | |||
# process | |||
# fork | |||
# execve | |||
# file | |||
# filesystem | |||
# signal | |||
# library | |||
# kernel | |||
# environment variable | |||
# shell variable | |||
# zombie process | |||
'''Definitions''': | '''Definitions''': | ||
Line 28: | Line 26: | ||
<li>The API used by a process to access outside resources (disk/user input/network) | <li>The API used by a process to access outside resources (disk/user input/network) | ||
<li>A variable that can only be accessed within the current shell. | <li>A variable that can only be accessed within the current shell. | ||
<li>A variable that can be accessed within the current process and in child processes (unless filtered) | <li>A variable that can be accessed within the current process and in child processes (unless filtered). | ||
<li>A variable that can be accessed globally by all processes. | <li>A variable that can be accessed globally by all processes. | ||
<li>A process that has terminated but its parent has not retrieved its return value. | <li>A process that has terminated but its parent has not retrieved its return value. | ||
<li>An indexed collection of object files that may be linked into a program. | <li>An indexed collection of object files that may be linked into a program. | ||
<li>A system call that loads an executable into the current process and runs it (erasing the process's old code and data). | <li>A system call that loads an executable into the current process and runs it (erasing the process's old code and data). | ||
<li> | <li>A schedulable entity with its own CPU context that can share its memory with other schedulable entities. | ||
<li>A type of inter-process communication that is also used in UNIX to manage processes. | <li>A type of inter-process communication that is also used in UNIX to manage processes. | ||
<li> | <li>An invocation of code present inside of a process that was included when the program was compiled. | ||
<li>A system call that creates a new process, loads an executable, and runs it in the new process. | <li>A system call that creates a new process, loads an executable, and runs it in the new process. | ||
<li> | <li>An invocation of code present inside of a process that was loaded into the process at runtime. | ||
<li> | <li>A system call to get the return value of a process that has terminated. | ||
<li>The main abstraction for running programs that gives each program its own memory and virtual CPU. | <li>The main abstraction for running programs that gives each program its own memory and virtual CPU. | ||
<li> | <li>A hierarchical collection of key/value pairs, where the values are streams of bytes of arbitrary length. | ||
<li> | <li>A device for storing data. | ||
<li> | <li>The first process that runs on a UNIX-like system. | ||
</ol> | |||
==Solutions== | |||
<ol style="list-style-type:upper-alpha"> | |||
<li>'''fork''': A system call that creates a new process by creating a logical copy of the current process.</li> | |||
<li>'''kernel''': The part of the operating system that runs in supervisor mode on the CPU and has the code that is run for all interrupts</li> | |||
<li>'''file''': A stream of bytes associated with a hierarchical name.</li> | |||
<li>'''system calls''': The API used by a process to access outside resources (disk/user input/network) | |||
<li>'''shell variables''': A variable that can only be accessed within the current shell. | |||
<li>'''environment variables''': A variable that can be accessed within the current process and in child processes (unless filtered). | |||
<li>'''(NONE)''': A variable that can be accessed globally by all processes. | |||
<li>'''zombie process''': A process that has terminated but its parent has not retrieved its return value. | |||
<li>'''library''': An indexed collection of object files that may be linked into a program. | |||
<li>'''execve''': A system call that loads an executable into the current process and runs it (erasing the process's old code and data). | |||
<li>'''(NONE - thread)''': A schedulable entity with its own CPU context that can share its memory with other schedulable entities. | |||
<li>'''signals''': A type of inter-process communication that is also used in UNIX to manage processes. | |||
<li>'''function call''': An invocation of code present inside of a process that was included when the program was compiled. | |||
<li>'''(NONE - CreateProcess on Windows)''': A system call that creates a new process, loads an executable, and runs it in the new process. | |||
<li>'''library call''': An invocation of code present inside of a process that was loaded into the process at runtime. | |||
<li>'''(NONE - wait)''': A system call to get the return value of a process that has terminated. | |||
<li>'''process''': The main abstraction for running programs that gives each program its own memory and virtual CPU. | |||
<li>'''filesystem''': A hierarchical collection of key/value pairs, where the values are streams of bytes of arbitrary length. | |||
<li>'''(NONE - disk?)''': A device for storing data. | |||
<li>'''(NONE - init)''': The first process that runs on a UNIX-like system. | |||
</ol> | </ol> |
Latest revision as of 19:15, 3 October 2015
Please submit your answers to the following on CULearn. This assignment is due before class on September 23, 2015.
Choose the *most* accurate definition for the following terms/concepts:
- system calls
- function calls
- library calls
- process
- fork
- execve
- file
- filesystem
- signal
- library
- kernel
- environment variable
- shell variable
- zombie process
Definitions:
- A system call that creates a new process by creating a logical copy of the current process.
- The part of the operating system that runs in supervisor mode on the CPU and has the code that is run for all interrupts
- A stream of bytes associated with a hierarchical name.
- The API used by a process to access outside resources (disk/user input/network)
- A variable that can only be accessed within the current shell.
- A variable that can be accessed within the current process and in child processes (unless filtered).
- A variable that can be accessed globally by all processes.
- A process that has terminated but its parent has not retrieved its return value.
- An indexed collection of object files that may be linked into a program.
- A system call that loads an executable into the current process and runs it (erasing the process's old code and data).
- A schedulable entity with its own CPU context that can share its memory with other schedulable entities.
- A type of inter-process communication that is also used in UNIX to manage processes.
- An invocation of code present inside of a process that was included when the program was compiled.
- A system call that creates a new process, loads an executable, and runs it in the new process.
- An invocation of code present inside of a process that was loaded into the process at runtime.
- A system call to get the return value of a process that has terminated.
- The main abstraction for running programs that gives each program its own memory and virtual CPU.
- A hierarchical collection of key/value pairs, where the values are streams of bytes of arbitrary length.
- A device for storing data.
- The first process that runs on a UNIX-like system.
Solutions
- fork: A system call that creates a new process by creating a logical copy of the current process.
- kernel: The part of the operating system that runs in supervisor mode on the CPU and has the code that is run for all interrupts
- file: A stream of bytes associated with a hierarchical name.
- system calls: The API used by a process to access outside resources (disk/user input/network)
- shell variables: A variable that can only be accessed within the current shell.
- environment variables: A variable that can be accessed within the current process and in child processes (unless filtered).
- (NONE): A variable that can be accessed globally by all processes.
- zombie process: A process that has terminated but its parent has not retrieved its return value.
- library: An indexed collection of object files that may be linked into a program.
- execve: A system call that loads an executable into the current process and runs it (erasing the process's old code and data).
- (NONE - thread): A schedulable entity with its own CPU context that can share its memory with other schedulable entities.
- signals: A type of inter-process communication that is also used in UNIX to manage processes.
- function call: An invocation of code present inside of a process that was included when the program was compiled.
- (NONE - CreateProcess on Windows): A system call that creates a new process, loads an executable, and runs it in the new process.
- library call: An invocation of code present inside of a process that was loaded into the process at runtime.
- (NONE - wait): A system call to get the return value of a process that has terminated.
- process: The main abstraction for running programs that gives each program its own memory and virtual CPU.
- filesystem: A hierarchical collection of key/value pairs, where the values are streams of bytes of arbitrary length.
- (NONE - disk?): A device for storing data.
- (NONE - init): The first process that runs on a UNIX-like system.