AS

CSCI 3310U Lecture Notes Flashcards

CSCI 3310U: Introduction

  • Course code: CSCI 3310U

  • Topic area: Systems Programming

  • Course structure overview with various introduction sequences.

Today’s Learning Goals

  • By the end of today’s lecture, students will be able to:

    • Understand what Systems Programming is.

    • Identify different types of System Calls.

    • Recognize the roles of Operating Systems.

    • Setup their working environment details.

Systems Programming

  • Definition: Systems programming involves creating system calls to execute tasks and services offered by the operating systems.

  • Interaction layers:

    • Operating Systems

    • Hardware

    • System Calls

    • Applications

    • User

Programs Execute in Two Modes

  • Two primary execution modes for programs:

    User Mode

    • Definition: Limited access to memory, hardware, and other resources to ensure safety during program execution.

    • Characteristics:

      • Errors or crashes in user mode do not affect the entire system; considered "safe" for system stability.

      • Mostly used for running user applications and processes.

    Kernel Mode

    • Definition: Provides programs direct access to memory and hardware resources, allowing for more control and functionality.

    • Characteristics:

      • A crash in kernel mode has the potential to lead to a complete system failure.

      • Used for executing core system operations and managing underlying hardware resources.

System Calls

  • Definition: A system call is a programmatic request for services or tasks from the operating system's kernel.

  • Commonly coded in languages such as C, C++, and Rust.

  • When programs in User Mode need resources, they call the operating system.

Types of System Calls

  • Process Control: Manage processes (examples: end a process, load a process, execute, abort).

  • File Manipulation: Interact with files (examples: create file, delete file, write to a file).

  • Device Management: Handle devices (example: safely remove a device).

  • Information Maintenance: Manage information retrieval (example: get current time or date).

  • Communication: Facilitate message exchange between different processes.

Operating Systems

  • Definition: Software that manages computer hardware and oversees processes and memory allocations.

  • Examples of popular operating systems:

    • Mobile Operating Systems: Android, Apple iOS

    • Traditional Systems: Windows, Mac OS X, Linux

Operating Systems in Kernel Mode

  • Run in Kernel mode (also called Supervisor/privileged mode).

  • Provides direct access to hardware and can execute any instructions.

Operating Systems Structures

  • Monolithic Operating System Structure: Traditional structure without modularity.

  • Layered Operating Systems: Groups components by functionality into layers for better modularity and manageability.

  • MicroKernel Structure: Minimizes the amount of services within the kernel; promotes scalability, extensibility, and portability.

  • Loadable Kernel Modules: Modern OS might integrate loadable kernel modules, allowing components to communicate via known interfaces and load as necessary.

Summary of Learning Goals

  • Recap of today's objectives:

    • Understanding Systems Programming.

    • Exploring System Calls.

    • Reviewing Operating Systems.

    • Setting up environment details.