Intro to CS 6-7 Flashcards
Assembler first pass
- Bind all symbolic names to address values
- Enter those bindings in the symbol table
Assembly language
1950, second-generation languages, low-level programming language
- Symbolic op codes
- Symbolic addresses for instructions and data
- Pseudo-ops for data generation and ,..
Machine language problems
Designed from a machine’s point of view
- Uses binary
- Allows only numerical memory addresses in binary
- Hard to insert and delete instructions. (All memory addresses following that instruction will change)
- Difficult to store data. (Would have to compute the internal representation for the data)
Hardware after loader
Begins fetch/decode/execute cycle
Assembly language pseudo-ops
.BEGIN (marks the beginning of program translation)
HALT (terminates program execution)
.DATA (to mark memory location as holding data)
.END (mark the end of program translation)
Assembly language process
- Assembly language program = Source program
- Source program translated by assembler into machine language = Object program
- Loader places object program in memory
- Processor executes object program
Assembly language format
- label:
- opcode
- address field
- –comment
Assembler second pass
- Translate the source program into machine language
- Handle data generation pseudo-ops
- Produce the object file needed by the loader (.exe)
Important system software programs
- Operating system: controls the overall operation of the computer (communicates and activates)
- Graphical user interface (GUI): visual interface
- Language service: allow user to develop programs in a high-level user-oriented language (assemblers, compilers, interpreters)
- Memory managers: allocate memory space for program and data, retrieve when no longer needed
- Information managers: handle the organization, storage and retrieve information on mass storage devices. (directories, folders, files)
- I/O systems: allow the user to communicate with various types of input and output devices in an easy and efficient way
- Scheduler: manages a list of programs ready to run on the processor and selects the one that will execute next. (multiple programs active same time)
- Utilities: usefull services organized in program libraries (text editors, sound applications,…)
- Network software: creates important and widely used virtual environment of computer network
Assembler
Translates assembly language program to machine language
- Convert symbolic op codes to binary
- Convert symbolic labels to memory addresses
- Perform pseudo-op actions
- Write object file containing machine instructions
Binding
The process of associating a symbolic name with a physical memory address
System software
A collection of programs that:
- Manages the ressources of the computer
- Facilitates access to those ressources
- Serves as intermediary between user and hardware
Second generation of operating systems development
Batch operating systems (1955-1965)
- Small I/O computer to put programs to tape
- Tape loaded on the big computer, ran user’s program as a group, writting results on another tape
- Command language: job control language
- Receptionist/dispatcher responsibility of the operating system
First generation of operating systems development
(1945-1955)
- Programmers hand-loaded programs
- Majority of time spent analyzing the result and what to do next
- Assemblers, loaders
Third generation operating systems development
Multiprogrammed and time sharing opeating systems (1965-1985)
- Multiple user programs loaded into memory at once
- Running/waiting/ready states
- Traffic officer and security guard responsibilities of the operating system
Assembler pass
The process of examining and processing every instruction in the program
Time sharing differences from multiprogrammed
A program keeps the processor until:
- It initiates an I/O operation
- It has run for a maximum length of time (time slice)
Fourth generation operating systems development
Network operating systems (1985-now)
- Local area networks
- Client/server
- Real-time operating system: manages ressources of embedded computers that are controlling ongoing physical processes and have requests that must be serviced withing fixed time constraints
Loader
Gets assembly language program ready to run
- Places instructions in memory
- Triggers the hardware to run the program
Loader after assembler
- After assembler
- Reads instruction from the object file and store into memory for execution
- After completion, places address 0 of the first instruction into the program counter to initiate execution
Virtual machine or Virtual environment
The set of services and ressources created by the system software
Naked machine vs Virtual machine
Virtual machine
- Write program using text editors in high-level language
- Save program to folder
- Use translator to convert binary
- Use sheduler to load and run
- Use I/O system to print results