0% found this document useful (0 votes)
77 views28 pages

Introduction To OS

An operating system is a set of programs that manage computer hardware resources and provide common services for computer programs. The main tasks of an operating system include managing the user interface, file system, process execution and synchronization, I/O devices, and errors. Operating systems can be classified based on processing type (interactive vs batch), number of supported users (single-user vs multi-user), and architecture (single-tasking vs multi-tasking). Interrupts allow the operating system to gain control from programs to handle events and switch between processes.

Uploaded by

Arber Hoxha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views28 pages

Introduction To OS

An operating system is a set of programs that manage computer hardware resources and provide common services for computer programs. The main tasks of an operating system include managing the user interface, file system, process execution and synchronization, I/O devices, and errors. Operating systems can be classified based on processing type (interactive vs batch), number of supported users (single-user vs multi-user), and architecture (single-tasking vs multi-tasking). Interrupts allow the operating system to gain control from programs to handle events and switch between processes.

Uploaded by

Arber Hoxha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Introduction to Operating

Systems
Jakub Olejnik
These slides are a much inexact translation of the material
available at http://wazniak.mimuw.edu.pl.
The authors of the original slides were kind enough to share
their files with me thus help me in translation.
Literature
Lecture
• A. Silberschatz „Operating Systems Concepts”
• A. Tanenbaum „Modern Operating Systems”
• webpage (in polish) – the OS section
http://wazniak.mimuw.edu.pl
Laboratory classes
• C. Newham, B. Rosenblatt „Learning the bash
shell”
• Unix/Linux manual pages
Basic Concepts of Operating
Systems
Lecture 1
What’s in this lecture?
• Definition of an Operating System, its place
and its role in computer system.
• What kind of Operating Systems are there?
• Operating Systems Concepts – how do the
OS’s work?
What is an Operating System?
A definition
An Operating System is a set of computer
programs which operate the computer’s
devices directly and whose task is to present
to a user an unified environment for writing
and running programs in an convenient and
efficient way.
thus…
An OS is a proxy between the user programs and
the actual hardware.
User and his programs

virtual machine API


Operating System
drivers

Actual Hardware
Structure of an Operating System
There are basicaly three types of OS’
components i.e.:

graphical or text-based
shells

The operating system


system programs: `CD’
commands, adm consoles

Kernel modules

hardware
The Tasks of Operating System
• Defining the user interface (shell)
• Providing a file system
• Providing environment to run user programs
– mechanisms of actual code execution, safety.
– mechanisms of process synchronization, communication
• Managing the I/O devices
• Providing procedures for handling basic errors

Re s o u rc e M a n a ge m e nt
Resource Management
Re s o u rc e – any software or hardware component
essential to processing
• Resource allocation – assigning resources to processes
• Resource allocation planning – choosing optimal
allocation strategy
• Access authorization and resource protection –
restricting resource access in accordance with permissions
granted
• Resource recycling – managing reusable resources
• Accounting – maintaining access register
Resources managed by Operating System
• Processor – each program gets a chance to be executed
• Memory
– allocation of memory space to processes
– memory protection and address transformation
• I/O devices
– providing access to keyboards, mice, mass storage devices,
printers, scanners, plotters etc.
• Information (file system)
– organizing information on disks, providing access
– protection and access authorization
Basic classification of Operating Systems
OS’s classified with respect to processing
• Interactive Systems (on-line systems)
– users directly interact with operating system
– task execution starts immediately after submission
• Common OS’s serve as examples
• Batch Systems (off-line systems)
– task execution can be delayed
– users can not interfere with task execution after their task
has been submitted
• Not many examples of pure off-line systems
• Partial examples include: mainframes, job scheduling, print
spooling, bulk transaction processing eg. ELIXIR
Batch System – a historical example

Early batch system


– Programmers bring cards to 1401
– Operator reads cards onto tape
– puts tape on 7094 which does computing
– puts tape on 1401 which prints output
OS’s classified with respect to number of
programs executed
• Single-tasking systems
– it is not possible to start a new user program until previous
task has finished
– Examples: the well-known MS-DOS and many earlier OS’s
• Multi-tasking/Multiprogramming systems
– Multiple can be executed `at the same time’
– OS’s provides mechanism of context switching to time-
share the CPU
– Basic strategies:
pre-emptive, co-operative multitasking, real-time systems
OS’s classified with respect to number of users
supported
• Single-user systems
– all of computer’s resources are accessed by only one user
thus mechanisms of protection and authorization are not
necessary
– Examples: MS-DOS, AmigaOS, Win95/98, WinXP home ed. – in a way.
• Multi-user systems
– Many users can access computer’s resources thus
mechanisms of protection and authorization are vital
– Examples: UNIX, Linux, Windows server families
Other types of OS’s

• Real-time operating systems


• Distributed (network) systems
• Server, Mainframe systems
• PC systems
• Multiprocessor systems
• Embedded systems
• Smart card systems
How does an Operating System work?
Von Neumann architecture

• Instruction codes as well as operands (args to instr.)


are stored in the memory
• Instructions are executed in the order in which they
are located in memory
• Memory location of next command is stored in PC/IP
• The order of instruction execution can be changed by
flow control instructions (jumps, cond. jumps by
PC:=PC + label)
• After instruction execution the instruction *(PC) is
loaded, decoded and PC:=PC + length(*PC)
Instruction cycle in detail – 1

• Instruction cycle (FDX-cycle) – the sequence of


actions that the processor (CPU) performs to execute
each machine code instruction in a program.
• Instruction cycle consists of phases.
• Typical phases of FDX-cycle are
– instruction loading phase – memory is read
– operand loading phase – memory is read
– instruction execution phase
– operand storing phase – memory is written
Instruction cycle in detail – 2
1. Fetch the instruction – PC is presented on address bus,
instruction code is read from data bus to CIR
2. Instruction is decoded by decoding unit
3. Fetch operands – Operand's effective address is fetched from
memory (optionally), the operand itself is fetched
4. Execution
5. Store results – Operand is stored in the memory
6. Check for interrupts
if an interrupt has been raised its number (source) is identified and the
context is switched to appropriate interrupt handle routine
if no interrupt has been raised go to 1.
Modern CPUs
Nowadays, processors implement mechanisms to
speed up the instruction cycle:
• Pipelines
– when one instruction is being decoded why not fetch the
next one
• Superscalar execution
– why not have more execution units
• Multithreading
– multiple threads parallelism
• Multi-core CPUs
– multithreading without sharing computing unit, CPU
cashe, TLB
Interrupts

An interrupt is a state of computer system in reaction


to an asynchronous event (an event which happens
independently of processing and its precise moment of
occurrence cannot be predicted) .
It consists in the processor automatically saving its
state of execution (context switch), and starting
execution of an interrupt handler.
Sources of Interrupts

• External interrupts – raised by external devices


• Software interrupts – raised by executed program
with special instruction (interrupt call)
• Diagnostic interrupts (exception handling) – raised to
handle an exceptional state of processing:
– traps
– software errors e.g..: division by 0, memory protection violation,
incorrect instruction; OS’s kernel removes the faulty process
– hardware errors e.g..: segmentation fault
Basics of OS’s operation

• The OS’s kernel is called by the use interrupts, in this


respect the kernel is a set of int. handlers and related procs.
• Hardware memory protection
• At least two CPU modes: (user mode, kernel mode)
• A set of privileged instructions is available only in the
kernel mode
• the I/O instructions are privileged
• a clock generates clock interrupts at constant
intervals of time, so that periodically the kernel regains
control
Interrupts in the layer cake

user software
program interrupt
external
interrupt

Operating System

machine code
diagnostic
interrupt
microarchitecture
Hardware memory protection example
• Executed program address
makes reference to
a specific location
in memory
• Memory chunks >= BASE
which are available
to the program are
described by two fault
registers: BASE and
LIMIT < +

LIMIT
memory is accessed
Scheduling by clock interrupts

• Kernel regains control by clock interrupts


• A clock interrupt (typically once per 10ms) runs a
kernel procedure which chooses a program to be
executed in turn
• In single-tasking systems user programs (or viruses)
sometimes modified the clock interrupt handler to
emulate ‘double-tasking’.

You might also like