Lecture 4 Flashcards
(18 cards)
Virtual memory
Virtual memory consists of a large set of memory address references
Words
fixed-sized data-chunks used by the CPU for
physical memory assignment.
Virtual memory motivation
amount of memory required
to run all processes on any modern OS invariably exceeds the amount of physical
(main) memory available.
Memory management
Multiple processes in memory at once, sharing physical memory addresses and protected from each other.
Physical memory address conflict
when two virtual memory addresses translate to the
same physical address. an address conflict resolution check is needed before a new process can be swapped in from virtual memory
Which part of the computer solves address conflict?
MMU (Memory management unit)
What is a program in the context of an OS?
source code, libraries and data necessary
to run the program
Process
a process is the program executable (.exe) actually
running
Executable
An executable (exe) is thus a process that has been scheduled to run by the OS and
is currently suspended (stored in virtual memory) or is currently running (stored
in main memory).
dynamic linking
deferring the resolution of some undefined symbols until a program is run
Static linking
linking of libraries to be used by a given program
may be done at compile-time
Linker
a linker or link editor is a programming language utility
program that takes one or more object files generated by a compiler and combines
them into a single executable file, library file, or another object file.
Page replacement algorithm
A page-replacement algorithm decides what memory chunks (pages) to swap-into main memory (and out of virtual memory), and thus what processes (i.e. split into pages) should be running in main memory at any given time.
Kernal part of any process
The kernel part of any process
contains addresses of OS-specific libraries and other data that must be executed in
order for the process to run at all
Uni programming
only one process runs at a time and a process always runs at same
place in physical memory, but a process can access any physical memory address. There is no translation or protection.
Why is uni programming infeasible?
Modern programming applications are too complex.
Original concept of Multi programming
Each process
(application) was allocated a specific address in main (physical) memory, but there
was still no memory address translation or protection. In this case, the linker and
loader dynamically adjusted program addresses when they were loaded to try and
prevent overlap of processes concurrently loaded into main memory.
Later version multiprogramming
The two special registers: BaseAddr and LimitAddr prevented users from straying
outside their designated memory areas when running processes. Thus, if a user
tried to access an illegal address, this caused an error and the process would not
try to execute. Users could not change the base/limit registers.