1
|
- Virtual Memory, Processes and Threads – Part 1
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
- Virtual memory range is 4Gb (32-bit)
- Addresses in a user dump are linear addresses from virtual memory
|
13
|
- Operating system structure describing regions of virtual memory and
other allocated resources (files, synchronization primitives, USER and
GDI objects, etc.)
- Application and other components (DLLs, files) are mapped into linear
virtual address space
- Owns resources
|
14
|
|
15
|
- To improve application and system performance by creating
pseudo-parallelism
- Application performance: internet browser - if we click on a link a
thread is created to download a new page, but we can still browse the
current page
- System performance: parallel access to hardware inside OS
|
16
|
|
17
|
- Unit of execution (current EIP)
- At least one thread in a process
- All resources (owned by a process) are shared among all process threads
– synchronization issues
|
18
|
|
19
|
- Better than a thousand words
- Bad example: Flow of CreateProcess (pp. 304-317 Inside Windows 2000)
- Diagramming notations
|
20
|
- Standard diagramming notation used to describe and communicate
application structure and behavior, software architecture and
designs (http://www.uml.org/)
- Diagrams for modeling static structure are similar to ER
(entity-relationship) and EER (enhanced ER)
- We will use UML diagrams to depict OS structures and interactions
|
21
|
- Class (entity type in ER)
- Object (entity occurrence, class instance)
|
22
|
- Binary association
- Generalization (parent – child, class - subclass)
- Containment (full ownership)
- Aggregation (shared ownership)
|
23
|
|
24
|
|
25
|
|
26
|
- Virtual memory and processes
- Multithreading, memory and stacks
- Calling Windows functions
- (stdcall vs. cdecl)
- Strings
- Pointers to pointers (LPSTR *)
- Structures in memory
|