Operating System: Core Functions and Objectives

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which of the following is NOT a primary goal of an operating system?

  • To directly manage application code development (correct)
  • To ensure efficient utilization of computer hardware
  • To provide a convenient interface for the user
  • To create a secure environment for running applications

In the evolution of operating systems, what was a primary characteristic of the mainframe era?

  • Batch processing with manual job scheduling (correct)
  • Direct user interaction with the system during processing
  • Graphical user interfaces for ease of use
  • Real-time processing of user requests

Which advancement paved the way for interactive computing and remote terminal access?

  • Embedded systems
  • Real-time operating systems
  • Batch processing systems
  • Time-sharing systems (correct)

What is the primary role of the kernel in an operating system?

<p>Directly controlling the computer hardware (D)</p>
Signup and view all the answers

Which of the following best describes the function of the shell in an operating system?

<p>It serves as the interface between the user and the kernel. (A)</p>
Signup and view all the answers

In the context of operating systems, what does the term 'virtualization' refer to?

<p>Simulating hardware to run multiple operating systems on one physical machine (C)</p>
Signup and view all the answers

Which type of operating system is designed to process data and events within strict timing constraints?

<p>Real-time operating system (RTOS) (D)</p>
Signup and view all the answers

What role do device drivers play in an operating system?

<p>They serve as interfaces between the operating system and hardware devices. (B)</p>
Signup and view all the answers

What is the primary function of system software?

<p>To control the basic operations of a computer system (B)</p>
Signup and view all the answers

Why is machine language considered a low-level language?

<p>Because it consists of 0s and 1s, directly understood by the computer. (A)</p>
Signup and view all the answers

What is the role of an assembler in the context of programming languages?

<p>To translate assembly language mnemonics into machine language instructions (D)</p>
Signup and view all the answers

What is the purpose of a compiler?

<p>To convert high-level language instructions into machine language (D)</p>
Signup and view all the answers

How do interpreters differ from compilers in translating high-level language programs?

<p>Interpreters execute the program line by line, while compilers convert the entire program into machine language before execution. (D)</p>
Signup and view all the answers

What is the primary function of a linker?

<p>To combine multiple modules and libraries into a single executable program (D)</p>
Signup and view all the answers

What is 'address binding' in the context of operating systems?

<p>The process of assigning symbolic references to actual memory locations (C)</p>
Signup and view all the answers

Which of the following best describes dynamic run-time loading?

<p>Converting relative addresses to absolute addresses only when needed during execution (B)</p>
Signup and view all the answers

What is a key characteristic of a monolithic operating system architecture?

<p>It integrates all core services into a single kernel space. (B)</p>
Signup and view all the answers

In a microkernel architecture, where do most operating system services run?

<p>Primarily in user space (A)</p>
Signup and view all the answers

Which operating system architecture balances a monolithic core with modular drivers?

<p>Hybrid architecture (C)</p>
Signup and view all the answers

In the context of exokernel architecture, what is the role of user-space libraries (libOSes)?

<p>To implement file systems, networking, and other operating system functionalities (D)</p>
Signup and view all the answers

Flashcards

Operating System

A program acting as an intermediary between a user and computer hardware, providing a user-friendly and secure environment for applications.

Core OS Functions

Allocate/deallocate CPU time, memory, and I/O devices, scheduling, creating, and terminating processes.

Security and Protection

Enforces access controls to protect against unauthorized access to system resources.

Batch Processing

Jobs submitted in groups without user interaction, maximizing resource utilization.

Signup and view all the flashcards

Time Sharing System

Allows multiple users to interact with a computer simultaneously, paving the way for interactive computing.

Signup and view all the flashcards

Kernel

Heart and soul of the OS, directly controlling hardware and providing services, always in main memory.

Signup and view all the flashcards

Shell

Command interpreter serving as the interface between users and the kernel.

Signup and view all the flashcards

Mainframe Computers

Designed to handle processing vast amounts of data simultaneously with high reliability.

Signup and view all the flashcards

Servers

Specialized to manage network resources and provide services to other computers.

Signup and view all the flashcards

Real-time OS (RTOS)

Processes data and events within strict timing constraints, crucial for systems like automotive control.

Signup and view all the flashcards

Distributed Systems

Consists of interconnected computers that work together towards a common goal, providing scalability.

Signup and view all the flashcards

Hypervisor-Based Systems

Allows multiple virtual machines to run on a single physical machine.

Signup and view all the flashcards

Type 1 Hypervisor

Runs directly on the hardware and is specialized to run virtual machines.

Signup and view all the flashcards

Type 2 Hypervisor

Runs on top of a host operating system, uses the host system's resources to run virtual machines.

Signup and view all the flashcards

Virtual Machine (VM)

Computer inside a computer, has its own operating system but runs using the resources of the main system.

Signup and view all the flashcards

System Software

Used to manipulate various operations on a computer system, managing hardware and supporting applications.

Signup and view all the flashcards

Machine Language

Natural language computers understand, made of 0's and 1's, difficult to program, very fast.

Signup and view all the flashcards

Assembly Language

Uses mnemonics in place of binary patterns, simpler than machine language.

Signup and view all the flashcards

High-Level Language

Easier to use due to use of English-like commands than machine language.

Signup and view all the flashcards

Linkers and Loaders

System software that combines modules and libraries into a single executable program.

Signup and view all the flashcards

Study Notes

  • An operating system is a program that serves as an intermediary between a user and computer hardware.
  • Its purpose is to make computers user-friendly and secure for running applications.

Goals

  • Simplify the execution of user programs and problem-solving.
  • Provide a convenient computer system.
  • Utilize computer hardware efficiently.

Objectives

  • Enhance the use of the computer.
  • Use resources efficiently.
  • Enable effective development, testing, and addition of new features without service interruption.
  • Manage system resources, ensuring fair sharing among processes and users.

Core Functions

  • Resource Management: Allocating and deallocating CPU time, memory, and I/O devices.
  • Process Management: Creating, scheduling, and terminating processes for efficient execution.
  • Memory & File Management: Implementing strategies to organize file storage, including paging, segmentation, and virtual memory.
  • Device Management: Interfacing with hardware via drivers and managing communication between peripherals and the system.
  • Security and Protection: Enforcing access controls and safeguarding resources from unauthorized access.

History and Evolution

Mainframes (1950s)

  • Large, expensive computers requiring manual job scheduling.
  • Early systems like IBM 701 & 1BM 704 ran on GM-NAA I/O.
  • Programmers wrote programs on paper, punched them on cards, and submitted card decks for processing.

Batch Processing System

  • Jobs submitted in batches to maximize utilization of computing resources.
  • It eliminates the need for user interaction during processing.

Time Sharing System (1960s)

  • Interactive computing and remote terminal access.
  • Allows multiple users to interact with the computer simultaneously.
  • Multiprogramming enabled multiple active processes.
  • Programmers could interact with the computer system directly.

Personal Computers (1970s-1980s)

  • Transition to smaller, user-friendly computers with graphical interfaces.
  • Examples include Apple Macintosh and early versions of Windows.

Modern OS Features

  • Distributed systems.
  • Real-time (RTOS).
  • Embedded systems.
  • Mobile operating systems.
  • Virtualization.
  • Containerization.
  • Increased focus on security.
  • Increased focus on energy efficiency.
  • Increased focus on user-centric design.

Operating System Structure

  • Consist of two parts: Kernel and Shell.

Kernel

  • The core that directly controls the computer hardware.
  • Performs OS services and hides hardware details from users and applications.
  • Resides in main memory for immediate access.

Shell

  • Acts as the command interpreter
  • Serves as the interface between users and the kernel.
  • Users enter commands which are then interpreted to use the service of the kernel.
  • Types: Command-Line Interface (CLI) and Graphical User Interface (GUI).

System Types & Operating Systems

Mainframe Computers

  • Large, high-performance systems for handling vast amounts of data simultaneously.
  • IBM z/OS: Tailored for IBM hardware, supporting multiprocessors and high security.
  • z/VM: Designed for virtualizing mainframe environments.

Servers

  • Specialized computers managing network resources and providing services to other computers.
  • Linux: Used in server environments for its stability, security, and flexibility
  • Windows Server: Provides file and printing services, web hosting, and active directory management.

Personal Computers (PCs)

  • General-purpose devices for individual use.
  • Microsoft Windows: Dominant OS with a user-friendly interface and wide software support.
  • MacOS: Developed by Apple, with a sleek interface and integration with Apple hardware.

Mobile Devices

  • Portable computing systems for wireless communication and mobility.
  • Android: Based on Linux, designed for touchscreen devices.
  • iOS: Developed by Apple, powering iPhones and iPads, known for user experience and integration.

Embedded Systems

  • Specialized for dedicated functions within larger systems, emphasizing real-time operation and reliability.
  • Embedded Linux: Customized version of Linux for embedded applications, offering flexibility and a range of development tools.
  • VxWorks: Real-time OS.
  • FreeRTOS: Open-source RTOS for embedded devices, offering a minimalistic footprint.

Real-Time Operating Systems (RTOS)

  • Processes data within strict timing constraints.
  • RTEMS: Open-source RTOS for embedded systems, supporting multi-processor systems.
  • QNX: Commercial RTOS with high reliability, used in automotive and industrial applications.

Distributed Systems

  • Multiple computers communicating and coordinating actions for common goals.
  • Google's Android: Supports distributed computing principles.
  • Apache Hadoop: Provides a scalable platform for big data applications.

Hypervisor-Based Systems

  • Virtualization platforms allowing multiple virtual machines (VMs) to run on a single physical machine.
  • Type 1 Hypervisor (Bare-metal): Runs directly on the hardware managing VMs.
  • VMware ESXi: Runs directly on server hardware, managing VMs with resource utilization and high availability.
  • Microsoft Hyper-V: Integrated into Windows Server and Windows operating systems, allowing VM creation, management, and dynamic memory allocation.
  • Type 2 Hypervisor (Hosted): Runs on top of a host OS, using host resources to create and manage VMs.
  • VirtualBox: Free, open-source hypervisor.
  • VMware Workstation: Powerful hypervisor providing advanced features for running multiple operating systems.

Hypervisor

  • Provides virtual machines on one computer, and controls how CPU and memory are shared.

Virtual Machine (VM)

  • Computer inside a computer.
  • Like a separate machine but uses the resources of the main system.

System Software and System Programming

Software

  • Instructions telling the computer what to do.
  • Written in C++ and Java.

Application Software

  • Programs accomplishing specialized tasks.

Document Production Software

  • Compose, edit, print, and publish documents electronically, like Microsoft Word, Google Docs, and LibreOffice Writer

Business Software

  • Finance, Accounting,
  • Software such as QuickBooks, FreshBooks, Wave, Tax Preparation such as TurboTax H&R Block, TaxSlayer

Multimedia Software

  • Manipulate images, sound, and video such as Adobe Photoshop, GIMP, Affinity Photo, and Audacity Adobe Audition, FL Studio

Entertainment Software

  • Programs for entertainment, media playback and gaming.

System Software

  • Manipulates basic operations of a computer system.
  • Examples: OS, compilers, debuggers, linkers, loaders, interpreters, and text editors.

System Programming

  • Developing system software, it requires a strong knowledge of computer hardware architecture.

System Software

  • Can be written in machine, assembly, or high-level languages.

Machine Language

  • The computer understands
  • Low-level language.

Assembly Language

  • Programming made easier using mnemonics.

High-level Programming Language

  • Easier to use because commands resemble English
  • C++, Java, Visual Basic.

Machine Language

  • Language that is natural to the computer.
  • Uses 0's and 1's.
  • Difficult to program with, high-level is preffered

High Level Language

  • Instructions are first converted into machine language.
  • Compiler does the translation

Advantages of High-Level Over Assemble Language

  • Easier to learn and use.
  • Has pre-defined functions and subroutine
  • Not machine dependent.

Advantages of Assemble Language Over High-Level

  • Executable code is compact – executions fasters.
  • Not constrained with certain programming conventions, nor rigid coding restrictions.
  • Has instructions that allow programmers more direct control over memory access.
  • Some system software programmers use assembly language-based subroutines to supplement high-level language capabilities

Language Translators

  • Convert high-level program or assembly language program into machine language.
  • They convert machine code and assemble the source and executables.
  • Assemblers translate assembly
  • Compilers translate and create executables
  • Interpreters converts program high-level code into CPU readable machine language

Linkers and Loaders

  • The system software combines or links the code and libraries that make an executable code.
  • Linker is the editor
  • Compilers don't always produce executables
  • Modular Programming helps compilers by test code independently
  • Mod codes are then converted to objects, and combined with Linker

Address Binding

  • Assigns symbolic references to memory locations
  • Uses physical address system

Loader Techniques

  • Absolute Loading: Has memory addresses for variables ready
  • Relocatable Loading: Memory addresses are created before loading
  • Dynamic Run-Time Loading: Happens only when its immediately needed when it is needed.

Operating System Architectures

  • Defines how the system interacts.
  • Determins how the balance, security, and modularity is organized.
  • It defines how everything gets managed

OS Components

  • Kernel integrates with hardware directly
  • Service manages the Kernel, drives, drivers, etc.
  • Interface is used for system applications with Shells and GUI

Architech Types

Monolithic Architecture- single stone type of design Microkernel Architecture- only needs to provide core services Hybrid Architecture- a balance to speed and modularity Exokernel Architecture- Securely multiple hardware resources and delegates resources to user-space libraries. Layered Architecture- Organizes functionality into distinct layers

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser