Lecture Note 03
Introduction to Computing
(CS111)
Junar A. Landicho
junarlandicho@ustp.edu.ph
“
Develop a passion for learning. If you do, you will never cease to grow.”
Anthony J. D’Angelo
Topic 3:
Operating
Systems
IT 416
Information Systems Development and Management
Learning Outcomes
By the end of this topic, students will be able to:
Explain how operating systems have evolved from the earliest batch processing systems to complex multitasking environments.
Identify the main components of commonly used operating systems.
Identify the various classifications of application and operating system software found on modern computers.
CS 111 – Introduction to Computing
Learning Outcomes
Explain the operating system concept of a process, and the potential concerns that arise when a system contains multiple processes competing for resources.
Identify the conditions required for deadlock to occur.
Identify existing cybersecurity concerns and the modern operating system security features designed to guard against them.
CS 111 – Introduction to Computing
Overview
1. The History of Operating Systems 2. Operating System Architecture 3. Coordinating the Machine’s Activities 4. Handling Competition among Processes 5. Security
CS 111 – Introduction to Computing
The History of Operating Systems
Python
Java
PHP
CS 111 – Introduction to Computing
Examples of Operating Systems
CS 111 – Introduction to Computing
Smartphone Operating Systems
CS 111 – Introduction to Computing
Functions of Operating Systems
Oversee operation of computer
Store and retrieve files
Provide the user interface to request
execution of programs
Coordinate the execution of programs
CS 111 – Introduction to Computing
History of Operating Systems
Each program is called a “job”
Early computers required significant setup time
Each “job” required its own setup
Operating Systems began as systems for simplifying setup and transitions between jobs
CS 111 – Introduction to Computing
History of Operating Systems
Batch processing (job queue)
Interactive processing (real time)
Time-sharing (one machine, many users) Multitasking (one user, many tasks)
Multiprocessor machines (load balancing) Embedded Systems (specific devices)
CS 111 – Introduction to Computing
Batch Processing
CS 111 – Introduction to Computing
Interactive Processing
CS 111 – Introduction to Computing
Operating System Architecture
Python
Java
PHP
CS 111 – Introduction to Computing
Operating System Architecture
Application software
▪ Performs specific tasks for users
(productivity, games, software
development)
System software
▪ Provides infrastructure for application
software
▪ Consists of operating system and utility
software
CS 111 – Introduction to Computing
Software Classification
CS 111 – Introduction to Computing
Operating System Components
User Interface: Communicates with users
▪ Text based (Shell)
▪ Graphical user interface (GUI)
Kernel: Performs basic required functions
▪ File manager
▪ Device drivers
▪ Memory manager
▪ Scheduler and dispatcher
CS 111 – Introduction to Computing
Operating System Components
The user interface acts as an
intermediary between users
and the operating system’s
kernel
CS 111 – Introduction to Computing
File Manager
Directory (or Folder): A user
created bundle of files and other
directories (subdirectories)
Directory Path: A sequence of
directories within directories
CS 111 – Introduction to Computing
Memory Manager
Allocates space in main memory
May create the illusion that the machine has more memory than it actually does (virtual memory) by playing a “shell game” in which blocks of data (pages) are shifted back and forth between main memory and mass storage
CS 111 – Introduction to Computing
Getting it Started (Bootstrapping) Boot loader: Program in ROM (example of firmware) ▪ Run by the CPU when power is turned on
▪ Transfers operating system from mass storage to main memory ▪ Executes jump to operating system
CS 111 – Introduction to Computing
Coordinating the Machine’s Activities
Python
Java
PHP
CS 111 – Introduction to Computing
The Concept of a Process
Process: The activity of executing a
program
Process State: Current status of the
activity
▪ Program counter
▪ General purpose registers
▪ Related portion of main memory
CS 111 – Introduction to Computing
Process Administration
Scheduler: Adds new processes to the process table and removes completed processes from the process table
Dispatcher: Controls the allocation of time slices to the processes in the process table
▪ The end of a time slice is signaled by an interrupt.
Multiprogramming between process A and process B
CS 111 – Introduction to Computing
Handling Competition among Processes
Python
Java
PHP
CS 111 – Introduction to Computing
Handling Competition among Processes
Semaphore: A “control flag”
Critical Region: A group of instructions
that should be executed by only one
process at a time
Mutual exclusion: Requirement that
only one process at a time be allowed
to execute a Critical Region
CS 111 – Introduction to Computing
Deadlock
Processes block each other from
continuing because each is waiting for
a resource that is allocated to another
Conditions required for deadlock
1. Competition for non-sharable resources
2. Resources requested on a partial basis
3. An allocated resource can not be forcibly
retrieved
A deadlock resulting from competition for
nonshareable railroad intersections
CS 111 – Introduction to Computing
Security Java
PHP
Python
CS 111 – Introduction to Computing
Security
Attacks from outside Problems
▪ Insecure passwords ▪ Sniffing software
Counter measures ▪ Auditing software
CS 111 – Introduction to Computing
Security
Attacks from within
Problem: A process that gains access to memory outside its designated area
Counter measures: Control process activities via privilege levels and privileged instructions
CS 111 – Introduction to Computing
CS 111 – Introduction to Computing
</End>
Introduction to Computing
(CS111)
Junar A. Landicho
junarlandicho@ustp.edu.ph
“
Develop a passion for learning. If you do, you will never cease to grow.”
Anthony J. D’Angelo
Topic 3:
Operating
Systems
IT 416
Information Systems Development and Management
Learning Outcomes
By the end of this topic, students will be able to:
Explain how operating systems have evolved from the earliest batch processing systems to complex multitasking environments.
Identify the main components of commonly used operating systems.
Identify the various classifications of application and operating system software found on modern computers.
CS 111 – Introduction to Computing
Learning Outcomes
Explain the operating system concept of a process, and the potential concerns that arise when a system contains multiple processes competing for resources.
Identify the conditions required for deadlock to occur.
Identify existing cybersecurity concerns and the modern operating system security features designed to guard against them.
CS 111 – Introduction to Computing
Overview
1. The History of Operating Systems 2. Operating System Architecture 3. Coordinating the Machine’s Activities 4. Handling Competition among Processes 5. Security
CS 111 – Introduction to Computing
The History of Operating Systems
Python
Java
PHP
CS 111 – Introduction to Computing
Examples of Operating Systems
CS 111 – Introduction to Computing
Smartphone Operating Systems
CS 111 – Introduction to Computing
Functions of Operating Systems
Oversee operation of computer
Store and retrieve files
Provide the user interface to request
execution of programs
Coordinate the execution of programs
CS 111 – Introduction to Computing
History of Operating Systems
Each program is called a “job”
Early computers required significant setup time
Each “job” required its own setup
Operating Systems began as systems for simplifying setup and transitions between jobs
CS 111 – Introduction to Computing
History of Operating Systems
Batch processing (job queue)
Interactive processing (real time)
Time-sharing (one machine, many users) Multitasking (one user, many tasks)
Multiprocessor machines (load balancing) Embedded Systems (specific devices)
CS 111 – Introduction to Computing
Batch Processing
CS 111 – Introduction to Computing
Interactive Processing
CS 111 – Introduction to Computing
Operating System Architecture
Python
Java
PHP
CS 111 – Introduction to Computing
Operating System Architecture
Application software
▪ Performs specific tasks for users
(productivity, games, software
development)
System software
▪ Provides infrastructure for application
software
▪ Consists of operating system and utility
software
CS 111 – Introduction to Computing
Software Classification
CS 111 – Introduction to Computing
Operating System Components
User Interface: Communicates with users
▪ Text based (Shell)
▪ Graphical user interface (GUI)
Kernel: Performs basic required functions
▪ File manager
▪ Device drivers
▪ Memory manager
▪ Scheduler and dispatcher
CS 111 – Introduction to Computing
Operating System Components
The user interface acts as an
intermediary between users
and the operating system’s
kernel
CS 111 – Introduction to Computing
File Manager
Directory (or Folder): A user
created bundle of files and other
directories (subdirectories)
Directory Path: A sequence of
directories within directories
CS 111 – Introduction to Computing
Memory Manager
Allocates space in main memory
May create the illusion that the machine has more memory than it actually does (virtual memory) by playing a “shell game” in which blocks of data (pages) are shifted back and forth between main memory and mass storage
CS 111 – Introduction to Computing
Getting it Started (Bootstrapping) Boot loader: Program in ROM (example of firmware) ▪ Run by the CPU when power is turned on
▪ Transfers operating system from mass storage to main memory ▪ Executes jump to operating system
CS 111 – Introduction to Computing
Coordinating the Machine’s Activities
Python
Java
PHP
CS 111 – Introduction to Computing
The Concept of a Process
Process: The activity of executing a
program
Process State: Current status of the
activity
▪ Program counter
▪ General purpose registers
▪ Related portion of main memory
CS 111 – Introduction to Computing
Process Administration
Scheduler: Adds new processes to the process table and removes completed processes from the process table
Dispatcher: Controls the allocation of time slices to the processes in the process table
▪ The end of a time slice is signaled by an interrupt.
Multiprogramming between process A and process B
CS 111 – Introduction to Computing
Handling Competition among Processes
Python
Java
PHP
CS 111 – Introduction to Computing
Handling Competition among Processes
Semaphore: A “control flag”
Critical Region: A group of instructions
that should be executed by only one
process at a time
Mutual exclusion: Requirement that
only one process at a time be allowed
to execute a Critical Region
CS 111 – Introduction to Computing
Deadlock
Processes block each other from
continuing because each is waiting for
a resource that is allocated to another
Conditions required for deadlock
1. Competition for non-sharable resources
2. Resources requested on a partial basis
3. An allocated resource can not be forcibly
retrieved
A deadlock resulting from competition for
nonshareable railroad intersections
CS 111 – Introduction to Computing
Security Java
PHP
Python
CS 111 – Introduction to Computing
Security
Attacks from outside Problems
▪ Insecure passwords ▪ Sniffing software
Counter measures ▪ Auditing software
CS 111 – Introduction to Computing
Security
Attacks from within
Problem: A process that gains access to memory outside its designated area
Counter measures: Control process activities via privilege levels and privileged instructions
CS 111 – Introduction to Computing
CS 111 – Introduction to Computing
</End>