Next:
1. Introduction
Up:
Lecture Notes on Computer
Previous:
Lecture Notes on Computer
Contents
1. Introduction
1.1 Purpose
1.2 The Courses
1.3 Lectures, Learning ...
1.4 Reading -- Computer Systems
1.5 Reading -- Operating Systems
2. Overview of Computer Systems and Operating Systems
2.1 Introduction
2.2 Simple Model of a Computer - Part 1
2.3 A Computer System
2.4 Central Processing Unit
2.4.1 Introduction
2.4.2 Arithmetic Logic Unit - ALU
2.4.3 Simplified CPU
2.5 Software
2.6 Computer Programs
2.7 Simple Model of a Computer - Part 2
2.8 Virtual Machines, Abstraction, Levels of Concern
2.8.1 Multilevel View of Computing Machines
2.9 Operating Systems
2.10 Self assessment questions
3. Computer Number Systems and Arithmetic
3.1 Introduction
3.2 Real Numbers versus Integer Numbers
3.3 Representation of Values in Finite Data Word Sizes
3.4 Addition, Multiplication, Exponentiation (Powers)
3.4.1 Multiplication
3.4.2 Exponentiation (Powers)
3.5 Symbolic Representations of Numbers - Bases
3.5.1 General
3.5.2 Binary Representation
3.5.3 Conversion - Binary-Decimal, Decimal-Binary
3.5.4 Hexadecimal
3.5.5 Conversion - Decimal-Hexadecimal
3.5.6 Octal
3.6 Binary Arithmetic
3.6.1 Addition
3.6.2 Hexadecimal addition
3.7 Representation of Sign in Binary Numbers
3.7.1 Sign-magnitude
3.7.2 Biased
3.7.3 Twos-complement
3.7.4 Twos-complement arithmetic
3.7.5 Overflow
3.7.6 The twos-complement circle, wrap-around
3.8 Binary Numbers -- Summary
3.9 Fractions and Floating Point
3.9.1 Introduction
3.9.2 Fixed Point
3.9.3 Floating Point
3.9.4 Binary Floating Point
3.9.5 Exercises
3.9.6 Rounding and Truncation
3.9.7 Normalisation
3.9.8 Conversion to Floating Point
3.9.9 Addition and Subtraction in Floating Point
3.9.10 Multiplication and Division
3.9.11 Fixed versus Floating Point
3.9.12 Accuracy
3.9.13 Resolution
3.9.14 Range
3.9.15 Precision
3.10 Common Number Representations
3.10.1 Various Sizes of Integers and their Ranges
3.10.2 Floating Point
3.11 Alphanumeric codes
3.11.1 UNICODE
3.11.2 Types
3.12 Error Detection
3.13 Exercises
3.14 Self assessment questions
4. Digital Circuits and Logic
4.1 Introduction
4.2 Logic
4.2.1 Introduction
4.2.2 Propositional Logic
4.2.3 Compound Propositions
4.3 Digital Circuits, Logic Circuits
4.3.1 And, or are binary, not is unary and the associative law
4.3.2 Equivalences of Propositional Logic
4.3.3 Truth-Tables used in Proofs
4.4 Digital Logic Gates
4.5 Logic Circuit Analysis
4.5.1 Equivalent Circuits
4.5.2 Exclusive-or
4.6 Bitwise Logical Operations
4.6.1 AND
4.6.2 Masking
4.6.3 OR
4.6.4 Shift
4.6.5 Rotate
4.7 Generations of Integrated Circuits
4.8 Programmable Logic Arrays
4.8.1 Transistor implementations
4.9 Exercises
5. The Components of a Computer
5.1 Multiplexers and routing circuits
5.1.1 Multiplexer
5.1.2 Demultiplexer
5.1.3 Decoder
5.2 Arithmetic Circuits
5.2.1 Adders
5.2.2 Arithmetic and Logic Unit (ALU)
5.2.3 Magnitude Comparator
5.2.4 Shifter
5.3 Flip-Flops and Latches - Memory
5.3.1 Introduction
5.3.2 Sequential Circuit as Combinatorial plus Memory
5.3.3 Set-Reset (SR) Latch
5.3.4 Clocked SR Latch
5.3.5 Clocked D-type Latch
5.3.6 D-Type Edge Triggered Flip-Flop
5.4 Memory
5.4.1 Memory Mapped Input-output
5.4.2 Graphics memory
5.4.3 Registers
5.5 Tri-State
5.6 Buses
5.7 ROM and RAM
5.8 Timing and the Clock
5.8.1 Introduction
5.8.2 Frequency and Period of Periodic Events
5.8.3 Clock Periods and Instruction Times
5.9 Exercises
6. The Central Processing Unit (CPU)
6.1 Introduction
6.2 The Architecture of Mic-1
6.2.1 Registers
6.2.2 Internal Buses
6.2.3 External Buses
6.2.4 Latches
6.2.5 A-Multiplexer (AMUX)
6.2.6 ALU
6.2.7 Shifter
6.2.8 Memory Address Register (MAR) and Memory Buffer Register (MBR) and Memory
6.2.9 Register Transfer Language
6.3 Simple Model of a Computer - Part 3
6.4 The Fetch-Decode-Execute Cycle
6.5 Instruction Set
6.6 Microprogram Control versus Hardware Control
6.7 CISC versus RISC
6.8 Exercises
6.9 Self assessment questions
7. Assembly Language Programming
7.1 Introduction
7.2 Programs in Assembly Code
7.2.1 Conventions
7.2.2 Simple Program - add two integers
7.2.3 Declaring variables
7.2.4 If-then
7.2.5 If-then-else
7.2.6 Repetition
7.3 Machine Code, Memory Maps
7.4 The Assembly Process
7.4.1 Two-Pass Assembler
7.4.2 Pass One
7.4.3 Pass Two
7.5 Manual Assembly
7.6 Linking and Loading
7.7 Exercises
7.8 Self assessment questions
8. Further Assembly Programming
8.1 Introduction
8.2 Mac-1 Instruction Set Extensions
8.2.1 The Additional Jumps
8.3 The Stack
8.3.1 Direct Accumulator-Stack Instructions
8.3.2 Indirect Accumulator-Stack Instructions
8.3.3 Call and Return - CALL and RETN
8.3.4 CALL
8.3.5 RETN
8.4 Subprograms
8.4.1 Introduction
8.4.2 The Wrong Way - using JUMP!
8.4.3 The Correct Way - CALL and RETN
8.4.4 Subprograms with Parameters
8.5 Stack Frame
8.6 Recursive Subprograms
8.7 Parameters Passed By Value
8.8 Reentrant Subprograms
8.9 Macros
8.10 Input-Output Instructions
8.10.1 Input from standard-input device
8.10.2 Output to the standard-output device
8.10.3 Polled I/O
8.11 Interrupts
8.12 Direct Memory Access (DMA)
8.13 Addressing - General
8.14 Exercises
8.15 Self assessment questions
9. Introduction to Operating Systems
9.1 Introduction
9.1.1 Why Do We Need an Operating System?
9.1.2 Multitasking on a Single User machine?
9.2 Operating Systems - Evolution
9.2.1 The Beginning - up to about 1954
9.2.2 Open Shop
9.2.3 Operator Shop
9.2.4 Off-line Input-Output and Resident Monitor
9.2.5 Spooling Systems and Schedulers
9.2.6 Multiprogramming/Multitasking
9.2.7 Interactive Multiprogramming and Time-sharing
9.3 History of Computers and Operating Systems -- Summary
9.3.1 1st Generation (1945-1955): Vacuum Tubes and Plugboards
9.3.2 2nd Generation 1955-1965): Transistors and Batch Systems
9.3.3 3rd Generation (1965-1980): ICs, Multiprogramming and Timesharing
9.3.4 4th Generation (1980-1991): PCs and Distributed Computing
9.3.5 The World Wide Web, PCs everywhere (1991- )
9.4 Exercises
10. From Magnets to File Systems
10.1 Introduction
10.2 Magnetic Recording
10.3 Magnetic Disks
10.3.1 Cylinders, Heads, Sectors
10.3.2 Linear Sector Numbering
10.3.3 Blocks and Clusters
10.3.4 Partitions
10.3.5 Master Partition Boot Record, or Master Boot Record (MBR)
10.3.6 Primary, Extended Partitions
10.3.7 Disk Sectors, Clusters, Files, etc. -- Summary
10.4 Time to Read and Write -- Latency
10.5 File Systems
10.6 Implementation of a File System
10.6.1 Contiguous Allocation
10.6.2 Linked List Allocation
10.6.3 File Allocation Table (FAT)
10.6.4 I-Nodes
10.7 Miscellaneous
10.7.1 Bad spots
10.7.2 Disk fragmentation
10.7.3 Windows FAT File Systems
10.8 NT File System (NTFS)
10.9 Directories
10.10 Hierarchical File System
10.10.1 Directory Navigation
10.10.2 Paths and Path-Names
10.10.3 Command History
10.10.4 Auto-completion
10.11 File Security and Permissions
10.11.1 Unix-Linux Access Permissions
10.12 Memory Hierarchy, Need for Files and all that
10.13 Self assessment questions
10.14 Self assessment questions
11. Brief Case Study - MS-DOS
11.1 Introduction
11.1.1 History
11.1.2 Structure
11.2 Processes in MS-DOS
11.3 Some MS-DOS Commands
12. Multitasking and Process Management
12.1 Introduction
12.2 An Example of the Advantages of Multitasking
12.3 Multitasking on a Single User machine?
12.4 Components of an Operating System
12.5 Processes
12.5.1 Process Life cycle
12.5.2 Process Control Block (PCB)
12.5.3 Context Switch
12.5.4 Thread versus Process
12.6 The Kernel
12.6.1 Kernel Privileges
12.6.2 Memory Protection
12.7 Scheduling
12.7.1 Batch, Interactive, Real-time
12.7.2 Preemptive versus Non-preemptive Scheduling
12.7.3 Cooperative versus Preemptive Scheduling in Windows
12.7.4 Goals of Scheduling Algorithms
12.8 Scheduling Algorithms
12.8.1 First Come, First Served (FCFS)
12.8.2 Round Robin (RR)
12.8.3 Shortest Process Next (SPN)
12.8.4 Shortest Remaining Time (SRT)
12.8.5 Priority
12.8.6 Conclusion
12.9 Self assessment questions
13. Memory Management
13.1 Introduction
13.2 Virtual Memory
13.2.1 Working Without Virtual Memory
13.2.2 Overlaying
13.3 Paged Virtual Memory
13.3.1 Introduction
13.3.2 Virtual Memory
13.3.3 Paged Virtual Memory -- some examples
13.4 Choice of Page Size
13.5 Page Replacement Policies
13.5.1 First in, First out (FIFO)
13.5.2 Least Recently Used (LRU)
13.6 Locality of Reference
13.6.1 Impact of Process Management
13.7 Cache memory
13.8 Self assessment questions
14. Miscellaneous Items
14.1 Audio Data in Computers
14.2 Compilation, Interpretation and all that
14.2.1 Introduction
14.2.2 Creation of Program Source Code
14.2.3 Compiling
14.2.4 Assembling
14.2.5 Linking
14.2.6 Execution
14.2.7 Compiling & Linking - Summary
14.2.8 Static versus Shared Libraries
14.2.9 Interpreted Languages
14.2.10 Java -- Compiler AND Interpreter
14.2.11 Java Enterprise Edition (J2EE) and .NET
14.2.12 Ultimately, All Programs are Interpreted
14.3 Graphic User Interfaces
14.3.1 Introduction
14.3.2 Command Line Interface
14.3.3 Graphic User Interface
14.4 Interprocess Communication
Bibliography
平成17年1月9日