- •Ssd2: Introduction to Computer Systems contents
- •Prerequisites
- •Course Textbook
- •Hardware/Software Requirements
- •The purpose of ssd2 is for students to
- •Students successfully completing ssd2 will be able to
- •1.1 Overview of Computer Systems
- •1.1.1 Components of a Computer System
- •Hardware System
- •Software System—Operating System Software and Application Software
- •Network System
- •1.2 Evolution of Computer Systems
- •1.2.1 Brief History
- •1200S—Manual Calculating Devices
- •1600S—Mechanical Calculators
- •1800S—Punched Cards
- •1940S—Vacuum Tubes
- •1950S—Transistors
- •1960S—Integrated Circuits
- •1970S to Present—Microprocessor
- •Pace of Advancement
- •1.2.2 Applications of Computer Systems
- •In Education Multimedia-Facilitated Learning
- •Simulation-Based Education
- •Intelligent Machine-Based Training
- •Interactive Learning
- •In Business Supply Chain Management
- •Project Management
- •Customer Relationship Management
- •Sales and Marketing Using Electronic Commerce
- •Manufacturing Research
- •In Entertainment Movies
- •Video Games
- •1.3 Data Representation in a Computer System
- •1.3.1 Bits and Bytes
- •Data Representation Using Binary Digits
- •Increasing Need for Bytes
- •1.3.2 Number Systems
- •Decimal
- •Hexadecimal
- •Learning Exercise
- •2.1 Processor and Memory
- •2.1.1 Processor Basics
- •Processor
- •Instruction Execution with the cpu
- •Performance: Factors and Measures
- •Types of Processors
- •2.1.2 Types of Memory
- •Cmos Memory
- •Summary
- •2.1.3 Lab: Benchmarking (Optional)
- •2.2 Peripherals
- •2.2.1 Connecting Peripherals
- •Expansion Slots and Cards
- •Usb and FireWire
- •Comparing Different Ports
- •2.2.2 Buses
- •2.2.3 Input/Output Devices
- •Input Devices
- •Cameras
- •Digital Camcorders
- •Scanners
- •Output Devices: Monitors and Projectors
- •Crt Monitors
- •Lcd Monitors
- •Projectors
- •Output Devices: Printers
- •Ink Printers
- •Dye-Sublimation Printers
- •Laser Printers
- •Comparing Printers
- •2.3 Storage Devices
- •2.3.1 Disk Controller Interfaces
- •Ide Interface
- •Eide Master/Slave
- •2.3.2 Mass Storage
- •How Mass Storage Devices Differ from ram
- •Disk Drive Reliability
- •Optical Media: cDs versus dvDs
- •Magnetic Media
- •Optical versus Magnetic
- •Solid State
- •Comparing Storages
- •2.4 Putting Together the Hardware Components
- •2.4.1 How Components Work Together
- •2.4.2 Lab: Researching a Computer System
- •2.4.3 Lab: Online Configuration
- •2.5 Improving Computer Performance
- •2.5.1 Moore's Law
- •2.5.2 Bottlenecks
- •Bottlenecks—Slowing a Process
- •Typical Bottlenecks
- •Eliminating Bottlenecks
- •2.5.3 Throughput and Latency
- •Unit 3. Operating System Software
- •3.1 Structure
- •3.1.1 Layers of Software
- •Layers and Process Management
- •Encapsulation and Abstraction
- •Layers of Software
- •3.1.2 The bios: Life at the Bottom
- •The Role of the bios
- •Changing bios Settings
- •3.1.3 Process Control
- •3.1.4 Lab: The Task Manager
- •3.2 Device Management and Configuration
- •3.2.1 Interrupt Handling
- •Interrupts
- •Interrupt Priority and Nested Interrupts
- •Traps and Faults
- •3.2.2 Hardware Attributes
- •Installing Drivers
- •Changing a Driver's Configuration
- •3.2.3 Configuration
- •3.2.4 Lab: Device Management
- •3.3 Resource Sharing
- •3.3.1 Virtual Memory
- •Managing Memory
- •Relocation
- •Virtual Memory
- •3.3.2 File and Printer Sharing
- •Printers
- •3.4 File Systems
- •3.4.1 File Organization
- •Folders
- •Shortcuts
- •File Names and Types
- •3.4.2 File Allocation Table and nt File System
- •Clusters and File Allocation Tables
- •Nt File System
- •Unit 4. Application Software
- •4.1 Software Basics
- •4.2 Using Software Systems
- •4.2.1 Lab: dos Commands
- •4.2.2 Lab: Macros
- •4.2.3 Lab: Embedding Application Objects
- •4.3 Batch Script Files
- •4.3.1 Advanced Command-Line Functions
- •Dos Command Syntax
- •Review of File System Commands
- •Wildcard Characters
- •Redirection and Piping
- •4.3.2 Batch File Commands
- •Batch Files
- •Commands
- •4.3.3 Lab: Creating a Batch File
- •Example of a Batch File
- •Example of a Batch File with Arguments
- •4.4 Databases
- •4.4.1 Lab: Searching the Library of Congress
- •4.5 Software Engineering
- •4.5.1 Issues in Large-Scale Software Development
- •The Software Development Process
- •Define or Redefine the Problem
- •Plan a Solution to the Problem
- •Code the Solution
- •Evaluate and Test Everything
- •4.5.2 Open Source Model
- •Free Software
- •4.5.3 Tools for Software Creation and Management
- •Editors
- •Compilers
- •Debuggers
- •Integrated Development Environments (idEs)
- •Unit 5. Network Systems
- •5.1 Internet Basics
- •5.1.1 Mime Types
- •5.1.2 Internet Languages
- •JavaScript
- •5.2 Local and Wide Area Networks
- •5.3 Communication Strategies
- •5.3.1 Client-Server Framework
- •5.3.2 Peer-to-Peer Connectivity
- •5.4 Data Transfer Technologies
- •5.5 Internet Architecture
- •5.5.1 Routers and tcp/ip
- •Internet Protocol
- •Routers
- •Transmission Control Protocol
- •5.5.2 Domain Name Service
- •Domain Name Service
- •5.5.3 Connectivity
- •Conventional Analog Phone Lines
- •Isdn: Integrated Services Digital Network
- •Cable Modem
- •XDsl: Digital Subscriber Line
- •Dedicated High Speed Lines
- •5.5.4 Internet Service Providers
- •Unit 6. Computer Security
- •6.1 Security Threats
- •6.1.1 Intruders: Who, Why, and How?
- •6.1.2 Identity Theft and Privacy Violation
- •Password Cracking
- •Packet sniffing
- •Social Engineering/Fraud
- •Spoofing
- •Port Scanning
- •6.1.3 Malicious Software
- •Trojan Horse
- •Prevention
- •Detection
- •Counter Measures
- •6.1.4 Denial of Service
- •Network Connectivity
- •Network Bandwidth
- •Other Resource Consumption Attacks
- •Distributed Denial of Service Attack
- •Prevention
- •6.2 Security Technologies
- •6.2.1 Encryption
- •Substitution Cipher
- •Transmitting the Key
- •Private Key Encryption Scheme
- •Public Key Encryption Scheme
- •Hybrid Encryption Schemes
- •6.2.2 Applications of Encryption
- •Hard Drives
- •Dvd Movies
- •Cellular Phones
- •6.2.3 Authentication
- •Strong Passwords
- •Smart Cards
- •Biometrics
- •Digital Signatures
- •Digital Certificates and Certificate Authorities
- •Ssl Protocol
- •6.3 Prevention, Detection, and Recovery
- •6.3.1 Firewall
- •Application Gateway
- •Packet Filter
- •Application Gateway versus Packet Filter
- •Intruder Attacks Prevented by Firewall
- •Setting up a Firewall
- •6.3.2 Intrusion Detection Tools
- •Intrusion Detection Systems
- •Network Monitoring Tools
- •Anti-Virus Software
- •6.3.3 Data Recovery
- •6.3.4 Summary of Security Tips
Instruction Execution with the cpu
Instructions are stored in the computer's memory, RAM (random access memory), which will be covered in section 2.1.2 Types of Memory.
There are two main components of the CPU. One is the control unit, which accesses instructions stored in RAM, interprets what they mean, and then dispatches them. The other is the Arithmetic/Logic Unit (ALU) that performs arithmetic (i.e. addition, subtraction, multiplication, division) and logic (i.e. greater than, less than, equal to) operations needed to process the instructions.
There are four steps that the CPU performs when executing an instruction; they are called the fetch-execute cycle. The four steps are as follows:
1. Fetch - The control unit gets the instruction from memory.
2. Interpret - The control unit decodes what the instruction means and directs the necessary data to be moved from memory to the ALU.
3. Execute - The control unit directs the ALU to perform the necessary arithmetic or logic operations.
4. Store - The result of the computation is stored in memory.
The diagram below illustrates the steps taken by the CPU to execute an instruction that adds two numbers. The instruction is: Let R = X + Y.

Figure 2 Fetch-Execute cycle
Another component of the microprocessor is the cache, a special high-speed memory that stores most recently used data in order to speed up the process of instruction execution. A cache can speed up data retrieval because recently used data is likely to be used again by the computer.
Level 1 (L1) cache memory or primary cache memory is located on the CPU to provide the CPU with the fastest access to data. There is also a slower cache, the Level 2 (L2) cache memory or secondary cache, located between the RAM and the CPU (sometimes on the CPU). If data cannot be found on either cache, it will be retrieved from RAM. Relative to the physical distance between the CPU and storage areas for data and instructions, data is retrieved more quickly from the L1 cache, then the L2 cache, and then the RAM.
The figure below illustrates how parts of a microprocessor fit within the other components in a computer.

Figure 3 Microprocessor view
Performance: Factors and Measures
The rate at which instructions are processed is controlled by an internal clock, also known as the system clock. The internal clock sends pulses at a fixed rate to synchronize all computer operations. The unit of measure for cycles per second is the hertz (Hz). One Hz means one cycle per second, one kHz (kilohertz) means one thousand cycles per second, and one MHz means one million cycles per second. Computer clock cycles are closely related to the execution of instructions. So, a 3 GHz Pentium 4 machine can execute more instructions per second than a 2 GHz Pentium IV machine. The greater the hertz, the faster the execution speed.
As processors have become faster and storage capacity increased, it has become feasible to perform more tasks than before. For example, near-instantaneous spellchecking can be done as the user types out a word, whereas years ago, this was not practical. Due to limited processing resources, older processors could not enable a user to type while verifying spelling.
A fetch-execute cycle does not necessarily correspond rigidly to the execution of a fixed number of instructions. Sometimes it takes two or more cycles to execute an instruction. And, today's computers sometimes execute multiple instructions in a single cycle. Thus, the number of instructions completed is independent of the number of cycles used. Sometimes machines are compared on the number of instructions per second (IPS) rather than on raw clock speed; this measure depends on both the number of cycles per second and what kind of instruction mix (set of instructions) is executed. A machine that is fast at financial calculations may not perform as well on a graphics application, since the instruction mix is different.
Instructions can differ a great deal. Some complex instructions require a lot of cycles and take a comparatively long time to execute. Other instructions may be very simple and execute in very little time. For example, a division operation takes longer than an addition operation. Although the IPS rating is not the best method of comparison, it can be useful when comparing similar chips.
Another measure of computer performance is its bandwidth, the volume of data that can be transmitted within a fixed amount of time between components in a computer system (such as the transfer speed from the disk to the motherboard) or through connections to other computers. Bandwidth is expressed in bits per second (bps), or sometimes bytes per second (Bps) (recall that 8 bits equals 1 byte).
Different machines, however, should be compared by executing a standard suite of instructions with execution times carefully measured and recorded. This is a more careful way to measure machine performance, and it is known as benchmarking– comparing disparate systems or components via a standardized set of instructions or series of tasks. Benchmarking can test anything from just the processor to executing office applications. The comparison is measured by the time it takes to execute these instructions. For example, Intel benchmarks its Pentium III processors based on the processors' performance of a variety of tasks, and so does Advanced Micro Devices with its processors. You can view various benchmark results comparing AMD and Intel processors.
In general, it is good practice to ask which benchmarks are used in performance claims. For example, a benchmark that tests graphics speed may be irrelevant if the types of graphical applications you use are different from those used in the test. It is important to assure that comparisons or claims are based on the same benchmarks. Benchmarking results by unbiased, independent organizations are especially useful.
