CS452 Study Guide Ch 1-7

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/133

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 3:33 AM on 10/17/25
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

134 Terms

1
New cards

operating system

a program that acts as an intermediary between a user an computer hardware

2
New cards

goals of an OS

execute user programs, make the computer system easy to use, utilize hardware efficiently

3
New cards

computer system structure

hardware, OS, applications, users

4
New cards

resource allocator

an OS function that decides between conflicting requests for efficient and fair use

5
New cards

control program

an OS function that controls execution of programs to prevent erros and improper system use

6
New cards

kernel

the one program running at all times on the computer

7
New cards

bootstrap program

a program loaded at power up or reboot, stored in the ROM or EPROM, initializes system components, loads the OS kernel and starts execution

8
New cards

concurrent execution

I//O and CPU can execute simultaneously

9
New cards

interrupt

a signal from hardware to the CPU indicating an operation is complete, transfers control to the interrupt service routine via the interrupt vecotr, incoming interrupts are disabled while another is being processed

10
New cards

trap

a software generated interrupt caused by an error or user request

11
New cards

interrupt handling

the OS determines the type of interrupt using polling oor a vectored interrupt system

12
New cards

system call

a request made by a user program to the OS, often to wait for I/O completion

13
New cards

device status table

a data structure containing an entry for each I/O device that lists its type, address, and state. The OS uses this table to check or modify device status when interrupts occur

14
New cards

storage structure

main memory, secondary storage, disk

15
New cards

main memory

random access, volatile storage

16
New cards

secondary storage

non-volatile, large capacity extension of main memory

17
New cards

disk

divided into tracks and sectors, the disk controller manages the logical interaction between disk and computer

18
New cards

caching

copying information into faster storage to improve performance

19
New cards

multiprocessor systems

systems with muliple processors that provide increased throughput, economy of scale, increased reliability, can be asymmetric or symmetric, and may be organized as clustered systems

20
New cards

multiprogramming

technique for increasing efficiency via job scheduling; when one job waits, the OS switches to another job

21
New cards

timesharing

the CPU switches among jobs frequently so that each user can interact with programs in real time

22
New cards

dual mode operation

enables OS protection via two modes: user mode, kernel mode

23
New cards

user mode

for user applications

24
New cards

kernel mode

for OS operations

25
New cards

process threading for single threaded process

one program counter

26
New cards

process threading for multithreaded process

one program counter per thread

27
New cards

protection

mechanism for controlling access of processes or users to resources defined by OS

28
New cards

security

defense of a system against attacks or unauthorized access

29
New cards

user ID and group ID

identifiers that determines user and group privileges within the system

30
New cards

user interface

allows users to interact with system services; can be CLI, GUI, or Batch. Uses system calls typically written in C/C++

31
New cards

system services user-oriented

include program execution, I/O operations, file system manipulation, communications, and error detection

32
New cards

system services efficiency-oriented

include resource allocation, accounting, protection, and security to ensure efficient OS operation

33
New cards

API

provides access to system calls; common ones include Win32, POSIX, and Java

34
New cards

system call numbers

each system call is associated with a unique number; the system call interface maintains a table indexed by these numbers

35
New cards

passing parameters in system calls

parameters can be passed via registers, by storing the address of parameters in a block, or by using the stack. Block or stack methods allow unliminited number and length of parameters

36
New cards

process control system calls

include end, abort, load, execute, create/terminate process, wait, and allocate/free memory

37
New cards

file management system calls

include create/delete file, open/close file, read, write, and get/set file attributes

38
New cards

device management system calls

include request/release device, read, write, and logically attach/detach devices

39
New cards

information maintenance system calls

include get/set time, get/set data, and get/set process, file, or device attributes

40
New cards

communication system calls

include create/delete communication connection, send/receive messages, and transfer status information

41
New cards

OS layered approach

the OS is divided into layers, each built on top of lower layers. Layer 0 is hardware, top layer is the user interface. Each layers uses only lower-level functions and services

42
New cards

VM

uses a layered approach that treats hardware and the OS kernel as thought they were all hardware. The host creates the illusion each process has its own processor and virtual memory

43
New cards

host vs guest in VMs

the host sytem provides each guest with a virtual copy of underlying computer

44
New cards

core dump file

file generated when an application fails capturing the memory of the process at the time of failure

45
New cards

crash dump file

file generated when the operating system fails, containing the contents of kernel memory

46
New cards

process

contrains a program counter, stack, and data section; represents a program in execution

47
New cards

text section

part of a process that contains the program code itself

48
New cards

stack

stores temporary data such as function parameters, return addresses, and local variables

49
New cards

data section

stores global variables used by the program

50
New cards

heap

contains memory dynamically allocated during run time

51
New cards

process control block

data structure containing information for each process: process state, program counter, CPU registers, scheduling info, accounting info, and I/O status info

52
New cards

I/O bound process

spends more time doing I/O than computations; has many short CPU bursts

53
New cards

CPU bound process

spends more time doing computations; has few, very long CPU bursts

54
New cards

context switch

when the CPU switches from one process to another, the system saves the old process's state to its PCB and loads the new process's state. Time depends on hardware

55
New cards

process creation

parent processes create child processes forming a tree structure. Each process as a PID for management

56
New cards

process resource sharing

parent and child processes may share all, some, or non of their resources

57
New cards

process execution relationship

parent and child processes can execute concurently o rhte parent can wait until the child terminates

58
New cards

fork() system call

creates a new process (child) that is a duplicate of the parent process

59
New cards

exec() system call

replaces the calling process's memory space with a new program, usually after a fork()

60
New cards

interprocess communications

mechanism allowing cooperating processes to exchange data, using either shared memory or message passing

61
New cards

shared memory

region of memory shared between processes for direct data access and communication

62
New cards

message passing

processes communicate by sending and receiving messages; can be blocking (synchronous) or non-blocking (asynchronous)

63
New cards

blocking send

sender waits until the message is received

64
New cards

blocking received

receiver waits until a message is available

65
New cards

blocking message passing

considered synchronous

66
New cards

non-blocking message passing

considered asynchronous

67
New cards

non-blocking send

sender sends and continues

68
New cards

non-blocking receive

receiver gets a message or null

69
New cards

thread

fundamental unit of CPU utilization that forms the basis of multithreaded computer systems

70
New cards

process vs thread creation

process creating is heavy-weight, while thread creation is light-weight; threads simplify code and increase efficiency

71
New cards

mulithreaded kernel

most kernels are designed to support multiple threads running concurrently

72
New cards

multithreaded models

many-to-one, one-to-one, many-to-many models for mapping user threads to kernel threads

73
New cards

many-to-one model

many user-level threads are mapped to a single kernel thread

74
New cards

one-to-one model

each user-level thread maps directly to a single kernel thread

75
New cards

many-to-many model

many user-level threads are mapped to many kernel threads, combining flexibility and concurrency

76
New cards

thread library

provides and API for programmers to create and manage threads

77
New cards

threading issues

include thread cancellation, signal handling, thread-specific data, and scheduler activations

78
New cards

asynchronous cancellation

terminates the target thread immediately

79
New cards

deferred cancellation

allows the target thread to periodically check whether it should be canceled

80
New cards

signal handling in threads

signal handler processes signals generated by specific events, delivered to a process, and handled appropriately

81
New cards

scheduler activiations

provides upcalls, communcation from the kernel to the thread library, to help the application maintain the correct number of kernel threads

82
New cards

race condition

situation where several processes access and manipulate the same data concurrently, and the outcome depends on the order of access

83
New cards

critical section

portion of a process's code where shared data is accessed or modified

84
New cards

critical section problem

each process must request permission to enter its critical section (entry section), execute it, then perform an exit section before the raminder section. Difficult in preemptive kernels

85
New cards

Peterson's solution

software based solution for two processes that ensures mutual exclusion using shared variables turn and flag[2]

86
New cards

Peterson's variables

turn: indicates whose turn it is to enter the critical section

flag[i]: true if process Pi is ready to enter the critical section

87
New cards

atomic operation

a hardware instruction that executes as a single, non-interruptible unit of work

88
New cards

lock solution

uses a lock variable. Proccess must acquire the lock before entering the critical section and release it afterward

89
New cards

test-and-set instruction

atomic operation used for synchronization. Sets a boolean variable to TRUE and returns its old value. Used to implement locks without busy waiting

90
New cards

swap instruction

atomic operation that swaps the values of two boolean variables, used to implement mutual exclusion

91
New cards

semaphore

synchronization tool that does not require busy waiting. Controlled through only two operations: wait() and signal()

92
New cards

counting semaphore

semaphore with an unrestricted integer value; can allow multiple resources to be available

93
New cards

binary semaphore

semaphore restricted to a 0 or 1, functioning like a simple lock

94
New cards

deadlock

occurs when two or more processes wait indefinitely for an event that only one of them can cause

95
New cards

starvation

condition where a process never gets access to necessary resources because others keep taking priority

96
New cards

priority inversion

situation where a lower-priority process holds a lock needed by a higher-priority process, causing delays

97
New cards

bounded buffer problem

a sychronization problem where producers and consumers share a fixed-size buffer. Must ensure producers don't add to a full buffer and consumers don't remove from an empty one

98
New cards

readers-writers problem

synchronization problem where multiple readers can access shared data simultaneously, but writers require exclusive access

99
New cards

monitor

a high-level synchronization construct that allows only one process to be active inside it at a time

100
New cards

monitor condition variables

used within monitors to manage process suspension and resumption (e.g. condition x, y;)