1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer...
-
Upload
nguyenkhue -
Category
Documents
-
view
221 -
download
4
Transcript of 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer...
![Page 1: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/1.jpg)
Instructor:
Rob Bergen
Applied Computer Science
University of Winnipeg
Computer Architecture and
System Software Lecture 01: Course Introduction and
Overview of Computer Systems
1
![Page 2: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/2.jpg)
Preliminaries 2
![Page 3: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/3.jpg)
Instructor
Rob Bergen
E-mail: [email protected]
Background:
Medical Physics (Image processing, GPU computing)
3
![Page 4: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/4.jpg)
Website
Check the course website regularly
http://www.acs.uwinnipeg.ca/2906
Updates will be posted weekly
Answers to questions sent by e-mail will be
(anonymously) posted
Course announcements
Syllabus available for download
4
![Page 5: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/5.jpg)
Classroom Procedure
Be on time, and stay until the end
Ask questions anytime
Turn cell phones off (or on silent)
Typically, we will take a break at 7:15 and restart
at 7:30
5
![Page 6: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/6.jpg)
Lecture Format
Lectures will consist of
Slides (available from the course website)
Problems and examples solved in class on the board
Example code will be available for assembly
programming
Possibly some short introductory videos on new
computer architecture/technology (super computers,
quantum computing, etc)
6
![Page 7: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/7.jpg)
Lab Format
Will be led by a demonstrator (Xuqi)
Typically, you will be provided the lab material by
e-mail on Friday morning. You will have until 5pm to
complete the lab
Important: It is very important to attend labs to get
practice with assembly programming. You will not
be successful unless you put the time in.
7
![Page 8: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/8.jpg)
Outline
Course theme
Preliminaries
A Tour of Computing Systems
Information is Bits + Context
Compilation System
Hardware Organization
The Operation System
8
![Page 9: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/9.jpg)
Course Theme 9
![Page 10: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/10.jpg)
Course Textbook
R. E. Bryant and D. R. O’Hallaron, Computer Systems: A Programmer’s
Perspective, 3rd Edition, Upper Saddle River, NJ, USA: Pearson/Prentice
Hall, 2011.
Textbook website:
http://csapp.cs.cmu.edu/
(2nd edition OK too)
10
![Page 11: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/11.jpg)
Course Theme
Most Systems Courses are Builder-Centric
This course is programmer-centric
Purpose to show how by knowing more about the underlying
system, one can be more effective as a programmer
The goal of this course is to give you a programmer-
centric view of the “what is going on under the hood of a
computer system”
Need to understand details of underlying implementations
11
![Page 12: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/12.jpg)
Course Theme
Enable you to:
Write programs that are more reliable and efficient
Avoid strange numerical errors caused representation of
numbers
Optimize code by using clever tricks that exploit designs of
modern systems
Example: Buffer overflows are sometimes exploited to bypass
network security
12
![Page 13: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/13.jpg)
Class Discussion
What is the difference between int and float data
types?
13
![Page 14: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/14.jpg)
Course Theme
An int is not an integer, a float is not a real number
Example 1) Is x2 >= 0 ?
float: yes
int: no
40000 * 40000 = 1600000000
50000 * 50000 = ?
Example 2) Is (x + y) + z = x + (y + z) ?
int: yes
float: no
(1e20 + -1e20) + 3.14 = ?
1e20 +(-1e20 + 3.14) = ?
14
![Page 15: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/15.jpg)
Class discussion
What does a compiler do?
15
![Page 16: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/16.jpg)
Course Theme
You’ve got to know assembly language
Compilers are much better & more patient than you are
But: Understanding assembly is key to machine-level
execution model
Behaviour of programs in presence of bugs
High-level language model breaks down
Tuning program performance
Understand optimizations done/not done by the compiler
Understanding sources of program inefficiency
Implementing system software
Compiler has machine code as target
Operating systems must manage process state
16
![Page 17: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/17.jpg)
Course Theme
Memory Matters
Memory is not unbounded
It must be allocated and managed
Many applications are memory dominated
Memory referencing bugs are often the most difficult to find
Effects are distant in both time and space
Memory performance is not uniform
Cache and virtual memory effects can greatly affect program
performance
Adapting program to characteristics of memory system can lead
to major speed improvements
17
![Page 18: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/18.jpg)
Course Theme
Memory performance example
18
![Page 19: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/19.jpg)
Course Theme
Computers do more than execute programs
They need to get data in and out
I/O system critical to program reliability and performance
They communicate with each other over networks
Many system-level issues arise in presence of network
Concurrent operations by autonomous processes
Coping with unreliable media
Cross platform compatibility
Complex performance issues
19
![Page 20: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/20.jpg)
A Tour of Computer Systems
Chapter 1 20
![Page 21: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/21.jpg)
Information is bits + context
Example:
What do the numbers below represent ?
21
![Page 22: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/22.jpg)
Information is bits + context
Answer: Depends on the context.
In this case they could represent text
ASCII: American Standard Code for Information Interchange
22
![Page 23: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/23.jpg)
Information is bits + context
All information in a system is represented as a
bunch of bits!
Problem: What do they represent?
For example: 0100 1011
Integer 75
ASCII character K
23
![Page 24: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/24.jpg)
Information is bits + context
Context is determined by:
Computer architecture
Big endian and little endian byte ordering
Operating system
Different OS use different markers to indicate the end of a
line in a text file (CR and LF)
\r\n DOS\Windows
\n for Unix and Unix-like world
Application software
MS Word doc files
24
![Page 25: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/25.jpg)
C/C++ Program Compilation
Pre-
processor (cpp)
hello.i Compiler (cc1)
hello.s Assembler (as)
hello.o Linker (ld)
hello hello.c
Source
program
(text)
Modified
source
program
(text)
Assembly
program
(text)
Relocatable
object
programs
(binary)
Executable
object
program
(binary)
printf.o
25
![Page 26: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/26.jpg)
Java Compilation Process
See http://en.wikipedia.org/wiki/Java_Virtual_Machine
26
![Page 27: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/27.jpg)
Program Compilation
Important reasons to understand compilation
process:
Optimizing system performance
Why does a loop run faster if we sum into a local variable
instead of an argument that is passed by reference ?
Understanding link-time errors
Avoiding security holes
What are buffer overflow bugs ?
27
![Page 28: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/28.jpg)
Program Execution
How is an executable file executed ?
To answer this question we need to understand the
hardware organization of a typical system
Also need to know the role of the operating system
28
![Page 29: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/29.jpg)
Class Discussion
How is information represented/managed at the
hardware level?
29
![Page 30: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/30.jpg)
30
Layout of a Real System
![Page 31: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/31.jpg)
Hardware Organization
Main
memory I/O
bridge Bus interface
ALU
Register file
CPU
System bus Memory bus
Disk
controller
Graphics
adapter
USB
controller
Mouse Keyboard Display
Disk
I/O bus Expansion slots for
other devices such
as network adapters
hello executable
stored on disk
PC
(Modelled after the family of Intel Pentium
systems)
31
![Page 32: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/32.jpg)
Running the hello program
Referring to example on p. 9 of the text
Simple “Hello World” program
To run program (majority of details omitted)
Load program into memory
Point PC to main routine of program
CPU executes instructions
32
![Page 33: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/33.jpg)
Main
memory I/O
bridge Bus interface
ALU
Register file
CPU
System bus Memory bus
Disk
controller
Graphics
adapter
USB
controller
Mouse Keyboard Display
Disk
I/O bus Expansion slots for
other devices such
as network adapters
PC
"hello"
User
types
"hello" 33
![Page 34: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/34.jpg)
Main
memory I/O
bridge Bus interface
ALU
Register file
CPU
System bus Memory bus
Disk
controller
Graphics
adapter
USB
controller
Mouse Keyboard Display
Disk
I/O bus Expansion slots for
other devices such
as network adapters
hello executable
stored on disk
PC
hello code
"hello,world\n"
34
![Page 35: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/35.jpg)
Main
memory I/O
bridge Bus interface
ALU
Register file
CPU
System bus Memory bus
Disk
controller
Graphics
adapter
USB
controller
Mouse Keyboard Display
Disk
I/O bus Expansion slots for
other devices such
as network adapters
hello executable
stored on disk
PC
hello code
"hello,world\n"
"hello,world\n"
35
![Page 36: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/36.jpg)
Overhead
Problem: A computer spends a lot of time copying
data
Hello program
Copied from disk to main memory to processor
String “hello, world\n”
Copied from disk to main memory to display device
Overhead slows down real work of processor
Goal: make these copy instructions as fast as possible
36
![Page 37: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/37.jpg)
Storage Devices
Physical law dictate storage device operation
Larger capacity storage devices are slower
Faster devices are more expensive
Examples:
A disk drive (HD) might be 100 x larger than main memory
But, it might take CPU 10,000,000 x longer to read a word from disk than from memory
A register file stores only a few hundred bytes (compared to
millions of bytes in memory)
However, CPU can read data from registers
100 x faster than memory
http://www.mackintoshconsultants.co.uk/images/storage-devices.gif
http://upload.wikimedia.org/wikipedia/commons/8/87/PersonalStorageDevices.agr.jpg
http://upload.wikimedia.org/wikipedia/commons/c/ca/Memory_module_DDRAM_20-03-2006.jpg
37
![Page 38: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/38.jpg)
Storage Hierarchy
Registers
On-chip L1
cache (SRAM)
Main memory
(DRAM)
Local secondary storage
(local disks)
Larger,
slower,
and
cheaper
(per byte)
storage
devices
Remote secondary storage
(distributed file systems, Web servers)
Local disks hold files
retrieved from disks on
remote network servers.
Main memory holds disk
blocks retrieved from local
disks.
Off-chip L2
cache (SRAM)
L1 cache holds cache lines retrieved
from the L2 cache.
CPU registers hold words retrieved from
cache memory.
L2 cache holds cache lines
retrieved from memory.
L0:
L1:
L2:
L3:
L4:
L5:
Smaller,
faster,
and
costlier
(per byte)
storage
devices
38
![Page 39: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/39.jpg)
Storage Hierarchy
Main Idea:
Storage at one level serves as a cache for storage at
the next lower level
Programs can run much faster if the programmer
exploits caches effectively
Problem: How to manage all the different memory
and devices ?
39
![Page 40: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/40.jpg)
Class Discussion
What does an operating system do? What are its
main functions?
40
![Page 41: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/41.jpg)
Operating System
Hello and shell programs did not access the keyboard,
display, disk, or main memory directly
Instead, they relied on services provided by the
Operating System (OS)
OS is a layer of software between application programs
and hardware
All attempts to access the hardware must go through OS
first
Application programs
Processor Main memory I/O devices
Operating system Software
Hardware
41
![Page 42: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/42.jpg)
Operating System
OS has 2 purposes:
Protect the hardware from misuse by applications
Provide applications with simple and uniform mechanisms for
manipulating various complicated low-level hardware
OS achieves both goals via the fundamental abstractions:
Processes
Virtual memory
Files
Processor Main memory I/O devices
Processes
Files
Virtual memory
42
![Page 43: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/43.jpg)
Processes
Operating system provides illusion that program is the
only one running
Appears to:
Have exclusive use of processor, main memory, and I/O
Execute instructions one after the other without interruption
Only program’s code and data reside in memory
Illusions provided by processes
43
![Page 44: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/44.jpg)
Processes
A process is the OS abstraction for a running program
Multiple processes can run concurrently
Concurrently: instructions of one process are interleaved with
instructions of another process
Interleaving is performed by a mechanism called context
switching
Each process appears to have exclusive use of the
hardware
44
![Page 45: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/45.jpg)
Processes
Operating system keeps track of state info. process needs
in order to run
Process state consists of:
Execution: PC and register file
Memory: allocated memory
Devices: files and devices
The CPU state is called the context of the process
Context switch: OS transfers control from current process
to new process
45
![Page 46: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/46.jpg)
Context Switching
Processes share the processor and system resources
OS allocates time
Switches context by
Saving context of current process (PC, register, memory)
Restoring context of previous process (PC, register, memory)
Passing control to new process
46
![Page 47: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/47.jpg)
Threads
Processes with multiple executions
A process can have more than one execution
Each execution is called a thread
Threads execute concurrently as well
Differences:
Process do not share memory
Threads view: it does not have the whole machine to
itself
47
![Page 48: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/48.jpg)
Virtual Memory (VM)
VM: interaction of hw exceptions, hw address translation,
main memory, disk files, and kernel software
Goal: Provide each process with a large, uniform, and
private memory address space
Provides 3 capabilities:
Uses main memory as a cache for an address space stored on
disk (HD)
Simplifies memory management by providing each process
with a uniform address space
Protect address space of each
process from corruption by other
processes
Main memory I/O devices
Virtual memory
48
![Page 49: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/49.jpg)
Files
A file is a sequence of bits.
Every I/O device is modeled as a file
Read/write: disks, networks
Read-only: keyboard, mouse, web-cam
Write-only: video, printer
Advantages:
Uniform interface for varied I/O devices
Abstracts away all the underlying details on how data
read/written
Programs written on one system can be easily ported to
another
49
![Page 50: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/50.jpg)
Networks
Modern systems are often linked to other systems
by networks
Viewed as another I/O device
Akin to reading/writing to a file
50
![Page 51: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/51.jpg)
Remote Execution
Local
telnet
client
Remote
telnet
server
2. Client sends "hello"
string to telnet server 3. Server sends "hello"
string to the shell, which runs the hello program,
and sends the output
to the telnet server 4. Telnet server sends "hello, world\n" string
to client
5. Client prints "hello, world\n"
string on display
1. User types "hello" at the
keyboard
51
![Page 52: 1 Computer Architecture and System Softwarecourses.acs.uwinnipeg.ca/2906/Lecture01.pdf · Computer Architecture and System Software ... You’ve got to know assembly language ...](https://reader034.fdocuments.us/reader034/viewer/2022051722/5a9ed03e7f8b9a62178bdb45/html5/thumbnails/52.jpg)
Lab 1
Bring your textbook/notes. You may not be able to
complete your lab without them.
52