Section 1

Preview this deck

Evaluate a layered kernel based on performance, security, and flexibility

Front

Star 0%
Star 0%
Star 0%
Star 0%
Star 0%

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Active users

0

All-time users

0

Favorites

0

Last updated

6 years ago

Date created

Mar 1, 2020

Cards (48)

Section 1

(48 cards)

Evaluate a layered kernel based on performance, security, and flexibility

Front

Back

What is hyperthreading?

Front

simulating two threads on one core (improve performance without adding more cores)

Back

How is process memory laid out in xv6?

Front

contiguously, and each process gets 2GB max. virtual address spaces go from 0 to the base of the kernel (because contiguous)

Back

What does the state of a process consist of?

Front

registers, list of open files, related processes

Back

What is the kernel responsible for?

Front

-protection (security, reliability) -process management (fair resource allocation) -memory management -I/O management -system calls

Back

What are the parts of a vm?

Front

Back

What is availability?

Front

the portion of time that the system is up and running

Back

What is the difference between synchronous and asynchronous implementations of threads and when are each strategically used?

Front

Back

What is non cooperative multithreading? How is it implemented in Java?

Front

Back

What are some hardware mechanisms used for protection by the kernel?

Front

slide 17 lec 2

Back

What does the PCB store?

Front

process id, state, CPU scheduling and accounting info, program counter, cpu registers, etc

Back

What is the virtualization layer?

Front

Back

What do you need to consider if you have several threads that share data?

Front

you need to explicitly synchronize access to the data

Back

For a context switch, how do you save current process registers without changing them?

Front

the processor HARDWARE pushes old registers on a new stack to save state

Back

What are the 5 steps to creating a process in xv6?

Front

1. prepare the kernel memory space 2. prepare kernel stack (allocproc) 3. prepare user memory space 4. set up trap frame 5. set up context refer to slide 55 for more- make sure u understand each step

Back

What services does an OS kernel typically provide?

Front

-memory -directories/file system -security -users -inter-process communication -networking -tracking time -more

Back

How does process address space abstraction correspond with the design principles of OS?

Front

1. abstraction, mechanism, policy: address space is abstracted into a private memory area per process for code, data, stack. mechanism allows for reading/writing/sharing, translation of address to physical address by hardware, and policy are the rules for doing so 3. indirection with virtual memory

Back

General standards for evaluating and OS

Front

RASPP Reliabilty, availability, security, performance, portability, adoption

Back

What are the two types of interrupts?

Front

1. software interrupts (traps) 2. hardware interrupts

Back

What are some general features to make the OS more portable extensible?

Front

- use a hardware abstraction layer - use dynamically loaded device driver

Back

What is cooperative multithreading?

Front

Back

What is a process?

Front

an INSTANCE of a program, running with limited rights

Back

What happens when a user program attempts to execute a kernel/privileged instruction?

Front

Back

What are two methods for notifying the OS about events?

Front

Back

Break down the OS task of "memory management" into abstraction, mechanism, and policy

Front

abstraction: memory stored in memory page mechanism: operates on abstractions, so mechanism is allocating DRAM or disk policy: configures the mechanisms: tells us where to put the page

Back

What overarching requirements do applications want from an OS?

Front

-abstraction of more complicated hardware details -secure sharing of data among applications -isolation of applications to contain bugs -multiplex hardware

Back

Evaluate a monolithic kernel based on performance, security, and flexibility

Front

Back

Evaluate a microkernel based on performance, security, and flexibility

Front

only the bare minimum code is placed inside the kernel, and the rest of the kernel tasks are broken down into separate processes with separate address spaces therefore: -performance is low -decently secure (if one service crashes, others can function properly because of separation) -more flexible/portable because of separation, can replace one service without replacing all

Back

What is stored in the kernel address space of a process?

Front

state in the OS, kernel stack (different from user stack)

Back

When is the PCB created?

Front

in xv6: in allocproc generally: on fork and when a new user process is started, at process initialization

Back

What is the difference between a native and hosted hypervisor?

Front

Back

What is a process's address space?

Front

All memory a process can address

Back

Name the three given OS design principles

Front

1. separate policy (how) from mechanism (what) 2. optimize for common case (bad for security) 3. indirection

Back

What are provisions taken by the OS to take interrupts safely?

Front

Back

What is reliability?

Front

whether the system does what is was designed to do

Back

What are specific differences between user mode and kernel mode?

Front

-kernel mode has full memory access -kernel mode has full privilege because it only executes trusted OS code

Back

Will buffer overflow attacks affect the kernel stack? Why or why not?

Front

after you answer this, fill in between this slide and the one addressed in question 43

Back

See slide 46 of lecture 3. Would part of valid input be: Hello from thread 8 Hello from thread 6 ? Why or why not?

Front

Back

What are three different categories of events that automatically transfer control to the kernel for handling?

Front

1. system calls 2. hardware interrupts 3. error/exception handling

Back

How do we handle maskable vs. unmaskable interrupts?

Front

Back

What are the design principles that we use to evaluate kernel organization (ie where kernel services are located)?

Front

Performance (mainly consider overhead), reliability/security, flexibility

Back

What is stored in the user address space of a process?

Front

-heap: dynamically allocated data -stack: local variables, function arguments, function calls -code/text segment, contains the instruction set -data: contains global variables, preprocessor directories

Back

What are some examples of privileged instructions?

Front

Back

What do abstractions/services supported by the OS look like to apps?

Front

a set of system calls (like an sdk)

Back

What is a PCB?

Front

process control block: OS maintains one for each process and stored in process control block table

Back

What does performance consist of?

Front

-latency/response time -throughput -overhead -fairness (among different users) -consistency of performance

Back

How do is the current mode (user or kernel) indicated?

Front

Back

Evaluate a virtual machine kernel type based on performance, security, and flexibility

Front

Back