Introduction to Computer Systems
Introduction
● The course provides insights into how a computer works and its functionalities.
● Operating systems are essential for managing computer hardware and providing user
abstraction.
Key Topics Covered
● Basics of Operating Systems: Understanding core functionalities, user and system
perspectives.
● Modern Computer Organization: Main architectures and memory systems (short term
and long term).
Components of a Computer System
1. Hardware: Includes CPUs, input/output devices, and memory.
2. Operating System (OS): Interfaces with hardware, provides an environment for
executing programs efficiently.
3. Application Programs: Logic executions solving user computing problems.
4. User: Interaction can be a person or other computers accessing services.
Views on Operating Systems
● User View: Varies with the interface; personal systems aim for ease of use and graphical
interfaces, while server systems focus on performance and security.
● System View: OS allocates resources efficiently and resolves conflicts for simultaneous
resource requests.
Computer Architecture Overview
● Memory and Storage: Main memory (volatile, limited) and secondary storage (e.g.,
SSDs, HDDs for permanent data storage).
● Processor Systems:
○ Single-core Systems: Execute one instruction at a time.
○ Multi-core Systems: Contain multiple cores for simultaneous processing.
○ Multiprocessor Systems: Multiple processors on one motherboard.
○ Clustered Systems: Linked via networks for high availability and parallel
processing.
Overview of Operating Systems in
Systems Programming
Introduction
This section explores the history and evolution of operating systems, from their inception to
modern structures.
Historical Context
● Early Days: Computing resources were limited, requiring users to book time for usage
and possess deep knowledge of the systems.
● GM-NAA I/O: Considered the first operating system, developed for IBM 704, functioning
on batch processing.
● Unix: Developed in the late 1960s, initially on PDP-7 and later on PDP-11, its portability
and openness contributed to its wide adoption and influence on modern OSs like Linux,
BSD, and macOS.
Operating Systems Today
● Licensing: There are distinctions between free and open-source software. Free software
allows for no-cost use, redistribution, and modification, whereas open-source software
may not have such licenses.
● Systems: Linux is a notable open-source OS with various distributions. Apple and
Microsoft have distinct approaches with macOS/IOS and Windows proprietary models,
respectively.
Inner Workings
● Structure: Different OS structures include monolithic, layered, and microkernel
architectures.
○ Monolithic: Entire OS in one address space, offering performance benefits but
harder to manage.
○ Layered: Structuring into layers to improve modularity and manageability.
○ Microkernels: Strips down OS to essential components to reduce complexity
and increase reliability.
OS Interface and Processes
● User Interfaces: Graphical, Command Line, and Touch interfaces cater to various user
needs.
● System Calls: Critical for tasks like managing files, devices, process control, and
communication.
● Process Management: Requires careful handling of process creation, execution, and
termination.
Communication and Protection
● Interprocess Communication: Achieved through message passing and shared
memory.
● Protection: Ensures controlled access to resources, a necessary feature in the era of
networking and internet connectivity.
Conclusion
Understanding the architecture and fundamental principles behind operating systems is crucial
for systems programming. This foundational knowledge aids in deeper exploration of OS
features and their applications.
Note: This overview highlights key components and evolution in operating system designs with a
focus on licensing differences, system calls, structure, and user interfaces.
Summary of Systems Programming Class
Introduction
This class focuses on understanding the operations of an operating system (OS) and its role in
managing resources such as hardware, space, and time.
Key Concepts
Operating Systems Overview
● An OS provides the environment for executing programs and varies greatly across
different lines.
● Despite differences, there are commonalities in OS operations.
Boot Process
● Bootstrap Program: The initial program that runs when a computer starts, stored in
hardware firmware.
● Its role is to load the OS kernel into memory and start execution.
Kernel and System Services
● Kernel: Once loaded, it begins providing services to the system and users.
● System Demons: These are the system programs running alongside the kernel, such as
System D in Linux.
Process Management
● OS manages multiple processes to ensure efficient CPU and I/O device utilization.
● Multitasking: The OS executes multiple processes by switching between them
frequently.
● Memory Management: Ensures efficient allocation and management of memory
resources.
Dual-Mode Operation
● Two main modes: User Mode and Kernel Mode.
● Mode Bit: Distinguishes between operations on behalf of the user or the OS.
● Privileged Instructions: Certain instructions can only be executed in Kernel Mode for
protection.
Virtual Memory
● Allows processes to execute without being completely in memory.
● Separates logical memory view from physical memory, enhancing flexibility.
Resource Management
● An OS manages CPUs, memory, and I/O devices ensuring proper allocation and
execution of processes.
● File Management: Abstraction of storage managing mass storage media.
I/O Subsystem
● Hides hardware device peculiarities from users.
● Includes memory management for buffering and caching, and device drivers interfaces.
Conclusion
Understanding these core elements helps in grasping how operating systems function to
efficiently manage and execute programs and resources.