0% found this document useful (0 votes)
17 views

os notes

This document provides an overview of operating systems, detailing their definitions, components, and functionalities, including process management and scheduling. It outlines key terms, the evolution of operating systems, and the interaction between hardware and software. The lessons aim to equip learners with foundational knowledge about computer systems, operating systems, and process management principles.

Uploaded by

wanbabsl1
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

os notes

This document provides an overview of operating systems, detailing their definitions, components, and functionalities, including process management and scheduling. It outlines key terms, the evolution of operating systems, and the interaction between hardware and software. The lessons aim to equip learners with foundational knowledge about computer systems, operating systems, and process management principles.

Uploaded by

wanbabsl1
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

LESSON 1

OVERVIEW OF OPERATING SYSTEMS

1.1 Introduction

In this first lesson, explain the information systems concepts. Try to get the terminologies
requisite to the course

1.2 Lesson Learning Outcomes


By the end of this lesson, you will be able to:
● Describe what a computer system, its constituents, system software,
operating system

1.2.1 Key terms


Computer System: system that is composed of the physical, electrical, mechanical,
programs, procedures and documentations parts
Operating System: System software that manages a computer system.

Definition:
A computer system is a system that is composed of the physical, electrical, mechanical,
programs, procedures and documentations parts.

Structure of a computer system

Introduction
A computer can be defiend as an electronic device that processes user data to produce a
desired output. The set of objects that participate to carry out the functionality of a computer
forms a computer system. How does a computer system components interact and operate to
achieve the objecitves of the computer?

Considering the logical structure of a computer system, one can describe it as a system
consisting of hierarchically arranged layers of software and hardware. The figure below
depicts these layer arrangements of a computer system

1
Figure 1. Hierarchical arrangements of a computer system

Through a top down approach, the top layer is the application layer. This level presents a
number of programs for end users to interact with the system. User needs to only open a
particular application with the provided interface and the task of this application will be
carried out at the lower levels without the knowledge of the user. Next to the application level
comes the high-order programming language layer which consists the development
environment and the translators associated with a high level programming languages. These
programming languages are used to develop the application programs and the application
programs communicate with them for their execution. The high-level programming
languages are machine architecture independent and can be transferred from one machine to
another easily.

E-tivity 1.2.1 - Concept of operating systems

Numbering, pacing and 1.2.1


sequencing
Title Concept of operating systems
Purpose The purpose of this e-tivity is to enable you to explain what

2
is computer operating system

Brief summary of overall task Watch videos on these links


https://www.youtube.com/watch?v=9GDX-IyZ_C8

Spark

Individual task Listen to video and take notes

1.2.2 input/output devices and discuss new technology devices.


The computer system is comprised of :
Input devices – used to key in data into computer;
Processing device. This is the processor (Central processing unit – CPU) used to convert data
to information ;

Storage devices – Used to store data for future access;


Output devices - used to display data after processing

E-tivity -1.2.2 IO devices.

Numbering, pacing and 1.2.2


sequencing
Title Hardware Devices.
Purpose The purpose of this e-tivity is to enable you know the hardware
devices
Brief summary of overall task Read the materials on these links
https://www.youtube.com/watch?v=ExxFxD4OSZ0 parts
of computer system

3
Spark

Individual task a) Differentiate between hardware and software

b) What are distinguishing functions of computer


software

Interaction begins 1.

E-moderator interventions 1.

Schedule and time


Next

1.3 Assessment Questions

a) Define ICT
b) Why would you say ICT is universal?

1.4 References

● Modern Operating System, Andrew S. Tanenbaum, Prentice-Hall, Inc.,


3rd Edition, 2008
● William Stallings, Computer Organization and Architecture, 5/E, 6/E,
Prentice Hall, 2003

4
LESSON 2

OPERATING SYSTEM PRINCIPLES

2.1 Introduction

What is operating system? What objectives does an operating system wants to


achieve?

Introduction
This unit introduces definition, evolution, structure and services of operating system.
As you were introduced in the course “Introduction to Computer Application”, the
operating system is a system software. What are operating systems functionalities?
What were the activities performed to reach to the contemporary operating systems
features? Since operating system is a software, what kind of software structure does it
have?
This unit addresses the above questions providing the definition, history, services and
structure of operating systems as a whole. Focus on terminologies used, functionalities
of an operating systems has and types of operating systems.

The very foundations of operating system can be viewed from different perspectives.
Mainly, these perspectives focus on user and system level. Additionally, we can
consider the operating system’s nature as a software that requires to evolve through
time depending on change on hardware as well as human needs. The principles that
govern operating systems can be viewed from the following:
i. System view as resource manager
ii. Users view as virtual machine
iii. Ability to evolve as software

2.2 Lesson Learning Outcomes

By the end of this lesson, you will be able to:


 State the principles and objectives of the operating system with the corresponding
aims they have
 Demonstrate the task of operating system as being an interface, resource manager,
etc
 Describe the correlation that exists between operating systems and computer
architecture, the evolution stages of operating systems
5
 Demonstrate the services provided by the operating systems
 Describe the different software structures of operating systems

2.3 Key Terms

Batch system: A system that processes in jobs.


Time sharing system: A system that shares CPU’s time between jobs.
Multi-programmed system: A system with uniprocessor executing several jobs at a
time.

2.4 Definition of Operating Systems

Introduction
So far, we dealt with the computer system along with its components. The focus is
about the operating system software. What is it?
What is Operating System?

Operating systems are system software that run on top of computer hardware. This
definition needs to be observed from different perspectives of computer system,
namely from application software and user hardware interaction.

Operating system can be defined as, system program that controls execution of
application programs. It is responsible for the loading and execution of application
programs. It has to make sure the availability of the required hardware and software
requirements before executing the application program.

Operating system can also be defined as system program that acts as an interface between the
hardware and its users. The operating system, according to this definition, has a responsibility
to hide the complexities of the underlying hardware for the end user. The end user is not
supposed to know the details of hardware components like CPU, memory, disk drives, etc.

Conclusion
As we have discussed the definitions of operating system so far, we can

conclude that the operating system is found between user, application

6
software, and hardware of the computer system. It facilitates the execution of

application programs and acts as a middle man between hardware and users

E-tivity 2.3. – what is an operating system

Numbering, pacing and 2.3.1


sequencing
Title Operating system
Purpose The purpose of this e-tivity is to enable you to explain the
fundamental concepts of operating system
Brief summary of overall task Watch videos on these links
https://www.youtube.com/watch?v=pVzRTmdd9j0

Spark

Individual task Listen to video and take notes

2.5 Evolution of Operating Systems

Introduction
Computers gone through different generations. The generations are classified based on
varieties of criterion. One of the major criterion to classfiy computer generations is the type
of operating system used. Evolution of operating systems has a close tie with the generation
of compters. What were the basic changes made on operating systems over these generations?

7
Evolution of Operating Systems
Studying evolution of Operating Systems is used to understand key requirements of an
Operating System. Moreover, it helps to understand significance of the major features of
modern Operating Systems.

Operating systems and computer architecture are historically tied. The combination of
computer architecture with operating system is known as computer platform. Architectural
changes affect structure and performance of Operating Systems. While studying the evolution
of operating systems, consideration on the architecture is required.

❑ The following shows the major evolution observed as per Operating Systems:
✔ Wiring-up plug-boards
✔ Serial Processing
✔ Simple batch processing
✔ Spooling batch processing
✔ Multi-programmed batch processing
✔ Timesharing
✔ Real time processing
✔ Symmetric multi-processing
✔ Network processing
✔ Distributed processing

E-tivity -2.4.1 Evolution of operating systems.

Numbering, pacing and 2.4.1 Evolution of operating systems


sequencing
Title Evolution of operating systems.
Purpose The purpose of this e-tivity is to enable you know how OS has
evolved
Brief summary of overall task Read the materials on these links
https://www.youtube.com/watch?v=PY6zEUELn8s

8
Spark

2.6 Assessment Questions

3 In simple batch processing systems, monitors utilities were loaded when needed.
a) True
b) False
4 In which type of system, the output of a program is sent to the disk and is printed only
when the job completes?
a) Multiprogrammed batch systems
b) Batch systems with spooling
c) Time sharing systems
d) Multiprinting systems
5 A system that supports multiple processes per user is called a
a) Multi-user system
b) Multi-programming system
c) Multi-tasking system
d) None of the above
6 You developed an operating system that allows a computer to work independently as
well as provides a means for sharing resources (e.g. files, printers, etc) to other
computers connected to it. What type of operating system did you develop?
a) Real-time operating system
b) Symmetric operating system
c) Local area network
d) Network operating system

6.1 References

 Modern Operating System, Andrew S. Tanenbaum, Prentice-Hall, Inc., 3rd Edition,


2008, Chapter 1
 A Silberschatz, Peter B Galvin, G Gagne: Operating System
Concepts, 7th edition, Chapter 1 and 2

9
LESSON 2
PROCESS MANAGEMENT
2.1 Introduction
The most central concept in any operating system is a process. A process is a program in
execution that needs different kinds of resources to be allocated. A process also interacts with
other processes more frequently. It is the job of the operating system to manage all the
requirements of processes and also coordinate communication among different processes.
This unit covers in detail processes, types of processes, the different states a process be in, the
difference between process and thread and the interaction among different processes.
Traditionally, a computer system executes processes sequentially. There are cases where we
would like the system to divert from this fashion and handle processes execution differently.
Scheduling is a means for deciding which process runs at a given time. It is a process of
selecting from among the processes in memory that are ready to execute, and allocates the
CPU to one of them. Scheduling is the basis for multi-programmed systems as the system
needs to make choices to grant the CPU to the ready state threads and processes. This unit
elaborates the need for scheduling and the different scheduling algorithm used to schedule
processes effectively. A deadlock situation and its consequences as well as the solution
towards it will also be discussed in this unit.
● Overview of Process
● Types of processes
● Process states
● Thread Management
● Inter-Process Communication (IPC)
● Scheduling and Dispatch
● Deadlock

2.2 Lesson Learning Outcomes


By the end of this lesson, you will be able to:
2.2.1 Descirbe how process is managed
2.2.2 Demonstrate how CPU scheduling is managed
2.2.3 Demonstrate a deadlock situation and how deadlock is managed

2.2.1 Key Terms


Process: Program in execution
Multiprogramming: Several programs are running at the same time on a uniprocessor
Thread: A light-weight process
Program: Execute code
10
Concurrency: Processes executing at a time
Scheduling: Ordering of several processes’ execution
Scheduler: An algorithm that selects a process to execute next based on the scheduling
algorithm
Context switch:Swapping of processes on the CPU
Deadlock: Two or more processes waiting to each other to release a resource

2.2.2 Overview of Processes

Introduction
One of the fundamental functionalities of operating system is process management.
What is process? What types does it have?

Early computer systems were capable of running only one program at a time. This
program had complete control of the systems’ resources and thus no structuring is
required. But today’s computer systems are designed to support multiprogramming,
running more than one program concurrently, besides the operating system they have.
This arrangement requires the system to know which is which so that going back and
forth between the programs is possible and thus enforces the need for structuring.
Process is an instance of a program that is being executed. It is a program that has
been loaded from disk onto memory and is running. While a program is just a passive
collection of instructions, process is the actual execution of these instructions and one
program can be several processes. It is the basic unit of execution in an operating
system. A process consumes certain resources like CPU time, memory, I/O devices to
accomplish its operations. It is the duty of the operating system to manage all these
requirements of processes and bring them to termination. A process is the basic
execution unit in an operating system with unique number assigned as an identifier
(PID). Though the CPU is running only one program at a time, it may also work on
multiple programs by switching and running them for tens or hundreds of
milliseconds. This in turn requires more control and partitioning of programs which
resulted in a process. Thus, the operating system will have many processes running at
the same time all requiring resources.

A process has three main components namely address space, processor state and OS
resources.
● Address space is a memory location that the process can access. It is how a
process sees its memory. Every process has its own private address space an
address space consists of various pieces like the program code, static variables,
heap, stack, etc. as can be seen in the following diagram.
11
Reserved for OS

Stack Segment

Heap

Data Segment

Text Segment
0xFFFFFFFF

Address Space

0x00000000

Figure 2.1. A process in memory

12
E-tivity 2.2.1 Process Management Concepts

Numbering, pacing 2.2.1


and sequencing
Title Process Management Concepts
Purpose To understand concepts of operating system process management

Brief summary of Video


overall task https://www.youtube.com/watch?v=f4HUQbceYkw&t=846s

2.3 Thread Management


Introduction
To perform several jobs at a time multiprogramming is a must. A program by itself
can not address several problems at a time. But, there is a mechnism through which a
program can solve this problem. The answer is thread. What is thread? How does it
work?
A process is a means through which related resources such as the address space, child
processes, opened files, etc. are grouped together. Threads are multiple execution
streams within a single process and are used to separate the resource management task
of the process from its actual execution. While processes are used to group resources
together, threads are the entities scheduled for execution on the CPU. Thread can also
be considered as lightweight process in that it does small portion of the entire task of a
process. Having a thread adds an advantage to a process by enabling multiple
independent executions in the same process environment by sharing the resources
grouped together. The CPU moves back and forth among the threads running and
creates an illusion that all of the threads are running in parallel. A process may create
several threads (multi-threading) that share same address space and work together to
accomplish a job in a sense they are not as such independent as two processes are.
Threads are very useful in modern programming whenever a process has multiple
tasks to perform independently of the others. This is particularly true when one of the
tasks may block, and it is desired to allow the other tasks to proceed without blocking.
For example in a word processor, a background thread may check spelling and
grammar while a foreground thread processes user input, while yet a third thread loads
images from the hard drive, and a fourth does periodic automatic backups of the file
being edited and so on. Like a single thread (one process), threads can be in any of the
states a process can be in which we previously discussed.

13
In a multi-thread model, a process starts by creating only one thread first and the
thread creating other threads through a create-thread library procedure call. The newly
created thread runs automatically in the address space of the creating thread and the
identifier of the newly created thread will be passed to the creating thread. The
exit_thread library procedure is used to terminate a thread when it finishes its task. A
thread can also wait for another thread with a call to the library procedure thread_wait.
The CPU has no interrupt towards threads , as with processes, that forces them to
surrender their usage of the CPU. However, threads use the thread_yield procedure
call to willingly give up the CPU for other threads to use. This avoids the
monopolized usage of the system by a single thread.
Multi-threading brings four main advantages to processes. These are:

1. Responsiveness - One thread may provide rapid response while other threads
are waiting or slowed down doing intensive calculations.
2. Resource sharing - By default threads share common code, data, and other
resources, which allows multiple tasks to be performed simultaneously in a
single address space.
3. Economy – Creating, destroying and managing threads is much faster than
performing the same tasks for processes since no resource is attached to a
thread
4. Scalability - A single threaded process can only run on one CPU, no matter
how many may be available, whereas the execution of a multi-threaded
application may be split amongst available processors.

Despite these advantages, threads also bring a complication to processes. One problem
is associated with the fork() system call. Assume a parent and child processes with
multi-threading capability. What would happen if a thread in the parent is waiting for
input? Does a thread in the child also get blocked? Who gets a typed input, only the
parent?, the child? Or both?

E-tivity 1.2.1 – thread management

Numbering, pacing and 1.2.1


sequencing
Title Thread Management
Purpose The purpose of this e-tivity is to enable you to explain thread
management
Brief summary of overall task Watch videos on these links
https://www.youtube.com/watch?v=OrM7nZcxXZU

14
Spark

Individual task Listen to video and take notes

2.4 Inter-Process Communication (IPC)


Introduction
In a multiprogramming environment several processes executes at a time. These processes
compute to control resources. Processes need to communicate to each other for sharing
resouces. How does the operating system handle such inter-process communication?

Concurrency and Its Problems


A. Basic Concept
The most fundamental task of modern operating systems is management of multiple
processes within uniprocessor, multiprocessor or distributed computer systems. The
fundamental design issue in the management of multiple processes is concurrency:
simultaneous execution of multiple processes
Concurrency arises in three different contexts
▪ Multiple applications: concurrently running applications
▪ Structured applications: an application structured as a set of concurrent
processes (threads)
▪ OS structure: OS implemented as a set of processes
Concurrency provides major benefits in processing efficiency and in program
structuring
B. Inter-process Communication
There is frequent interaction among concurrently running processes. There are three
ways in which concurrent processes interact with each other:

Competition for Resources


▪ It occurs when independent processes that are not intended to work together
compete for the use of the same or shared resource, e.g. printer, memory, or
file
▪ There is no exchange of information between these competing processes
▪ Processes are unaware of the existence of each other

15
Cooperation by Sharing Resources
▪ It occurs when processes that are not necessarily aware of each other use and
update shared data without reference to other processes but know that other
processes may have access to the same data
▪ Processes must cooperate to ensure that the data they share are properly
managed
▪ Processes are aware of the existence of each other indirectly
Cooperation by Communication
▪ It occurs when various processes communicate with each other, for instance
with message passing in order to provide a way to synchronize or coordinate
their various activities.
▪ There is nothing shared between processes
▪ Processes are aware of the existence of each other directly
C. Concurrency Problems
There are some serious problems associated with the interaction of concurrently running
processes:
i. Race Condition
▪ A situation that occurs when two or more processes are reading or writing
into some shared data and the final result depends on who runs precisely
when
▪ E.g. 1 Printer Spooler: when a process wants to print a file, it enters the file
name in a special spooler directory. Assume that the spooler directory has a
large number of slots, numbered 0,1,2,…
There are two globally shared variables
Outfile: points to the next file to be printed
Infile: points to the next free slot in the directory
There were some files in the spooler directory and assume the current
value of infile is 7 and that of outfile is 3
Assume that simultaneously process A and process B decide they want
to queue a file for printing
- Process A reads infile and stores the value 7 in its local variable
(x=infile)
- An interrupt occurs and the CPU decides that process A has run long
enough so it switches to process B
- Process B reads infile and stores the value 7 in its local variable
(y=infile)
- Process B stores the name of its file in slot 7 and adjusts infile to be 8

16
- Eventually process A runs again, it checks x and finds 7 there, and
writes its file name in slot 7, erasing the name process B just put
there, it updates infile to be 8
- The printer daemon will now print the file of process A, process B
file will never get any output
▪ E.g. 2 Character echo procedure: consider the following globally shared
procedure
Void echo
{
chin=getchar(); //read a character from keyboard
chout=chin;
putchar (chout); //display the character on the screen
}
Consider two processes (P1 & P2) trying to access the procedure
- Process P1 invokes the echo procedure and is interrupted
immediately after the conclusion of getchar function (chin =x)
- Process P2 is activated and invokes the echo procedure, which runs
to conclusion, inputting an displaying a single character, y
- Process P1 is resumed. By this time the value x has been overwritten
in chin and therefore lost. Instead chin contains y, and is displayed
twice
ii. Deadlock
▪ It is the permanent blocking of a set of processes that either compete for
system resources or communicate with each other. It involves conflicting
needs for resources by two or more processes.
▪ It refers to a situation in which a set of two or more processes are waiting for
other members of the set to complete an operation in order to proceed, but
none of the members is able to proceed.
▪ E.g. Traffic deadlock: consider a situation in which four cars have arrived at
a four-way stop intersection at the same time. The four quadrants of the
intersection are the resources over which control is needed. If all four cars
proceed into the intersection, then each car controls one resource (one
quadrant) but cannot proceed because the required second resource has
already been controlled by another car. Hence deadlock will occur. The
main reason for this deadlock is because each car needs exclusive use of
both resources for certain period of time
▪ It is a difficult phenomenon to anticipate and there are no easy general
solutions to this problem.
17
▪ We shall be discussing deadlock problem and handling mechanisms in the
next unit.
iii. Starvation
▪ It referees to the situation in which a process is ready to execute but is
continuously denied access to a processor in deference to other processes.
▪ E.g. suppose that there are three processes P1, P2, and P3 and each require
periodic access to resource R. If the operating system grants the resource to
P1 and P2 alternately, P3 may indefinitely be denied access to the resource,
thus starvation may occur.
▪ In large part, it is a scheduling issue that shall be addressed in the next unit
D. Mutual Exclusion
▪ The key to preventing race condition is to enforce mutual exclusion: It is the
ability to exclude (prohibit) all other processes from using a shared variable
or file while one process is using it.
▪ Part of a program where shared resource (critical resource) is accessed is
called critical region or critical section
Process A Process B
- -
- -
- -
Read infile Read infile
Put file Put file
Increment infile Increment infile
- -
- -
- -

2.5 E-tivity 1.2.1 – Inter-Process Communication (IPC)

Numbering, pacing and 2.5.1


sequencing
Title Interprocess Communication
Purpose The purpose of this e-tivity is to enable you to explain IPC

18
Brief summary of overall task Watch videos on these links
https://www.youtube.com/watch?v=dJuYKfR8vec

Spark

Individual task Listen to video and take notes

2.6 E-tivity 2.5.2 – Deadlock management

Numbering, pacing and 2.5.2


sequencing
Title Deadlock
Purpose The purpose of this e-tivity is to enable you to explain
deadlock
Brief summary of overall task Watch videos on these links
https://www.youtube.com/watch?v=FVmwvZNQgt0

Spark

19
Individual task Listen to video and take notes

2.7 Process Scheduling


Introduction
Starvation is one of the problems of concurrency. In a multiprogramming environment,
processes compute for the uniprocessor. How does the operating system executes these
processes in turn with minimal starvation?
Overview
Kernel is one part of an operating system that carries out several activities and operations
among which process management is one. The process management task includes handling
process creation, termination, inter-process communication, scheduling, switching,
dispatching and management of process control blocks. Scheduling is a means through which
fair distribution of execution time is granted to processes with similar state for a
multiprogramming system. Multiprogramming aims to have some process running at all
times and maximize CPU utilization by switching the CPU among processes so frequently
that users can interact with each program while it is running.The two main objectives of
the process scheduling are to keep the CPU busy at all times and to deliver "acceptable"
response times for all programs, particularly for interactive ones. The process scheduler must
meet these objectives by implementing suitable policies for swapping processes in and out of
the CPU.The idea behind multiprogramming is to execute a process until it changes its state
to waiting, typically for the completion of some I/O request and use this time productively
rather than making the CPU idle until the process comes back to its ready state again.To
accomplish this, several processes are kept in memory at one time and when one process has
to wait, the operating system takes the CPU away from that process and grants to another
process.This pattern continues. However, there is a frequent chance for more than one
process to be in a ready state at the same time which forces them to compete for the CPU.The
system should then make a wise choice as to which process to run next. Component of the
operating system with the responsibility of choosing a process to run is known as scheduler
and the steps it follows scheduling algorithm. The task of the scheduler is, thus, to decide on
a policy about which process to be dispatched, select a process according to the scheduling
algorithm chosen and load the process state or dispatches the process for execution.
Scheduling is a means by which process migration between the three different queues
maintained by a multiprogramming system can be achieved. These three different queues of
processes are:
a) Job queue : set of all processes found in the system.
b) Ready queue : set of all processes residing in main memory, ready and waiting to
execute.
c) Device queue : set of processes waiting for a particular I/O device.

20
Figure2.7. The three processes queue and CPU interaction among them

2.8 E-tivity 2.5.2 – Process Scheduling

Numbering, pacing and 2.5.2


sequencing
Title Process Scheduling
Purpose The purpose of this e-tivity is to enable you to explain
process scheduling
Brief summary of overall task Watch videos on these links
https://www.youtube.com/watch?v=2h3eWaPx8SA

Spark

Individual task Listen to video and take notes

2.9 Assessment Questions


1. What is the importance of using threads?

21
2. What are the main differences between user space and kernel threads?
3. What are the disadvantages of kernel level thread implementation?
4. Which problems of user space thread implementation are solved by using the
scheduler activation thread implementation method?

5. Discuss the problems of concurrency.

6. What kind of solution is test-and-set lock (TSL) provide ?

7. What is the difference between semaphores and monitors ?

8. How does deadlock happen in a system ?

2.10 References
 Modern Operating System, Andrew S. Tanenbaum, Prentice-Hall, Inc., 3rd Edition,
2008, Chapter 2 and 3
 A Silberschatz, Peter B Galvin, G Gagne: Operating System
Concepts, 7th edition, Chapter 3, 4, 5, 6, and 7

22
LESSON 3
Memory Management

3.1 Introduction
Every process needs to be stored in memory. Operating systems keeps track of every
information of process, memory, file and I/O, as discussed on Unit 2. Processes, Files, and
I/O has to be stored in the memory. One of the fundamental tasks of operating system is to
allocate memory for processes, opened files, and I/O devices
3.2 Lesson learning outcomes
By the end of the lesson, you will be able to;
3.2.1 Elicit the importance of memory
3.2.2 Describe the difference and usage of swapping, and partitions
3.2.3 Work with the techniques of paging and segmentation
3.2.4 Effectively address the different page replacement algorithms and working sets
3.2.5 Explain the concept of caching
3.3 Key Terms

Swapping: Replacing a process in a memory with another one from a disk


Paging: Bringing and taking of pages a process in and out of a memory
Segmentation: Dividing parts of a process from programmer point of view
Page replacement algorithm: Algorithm used to select a victim page to be evicted from the
memory
Caching: A memory that keeps a subset of a data set in a more accessible but space-limited
location
Address space: Sets of memory addresses

3.4 Overview of Memory


Introduciton
The other fundamental functionality of the operating system is memory management.
Processes, opened files, and input/ourput devices require memory to operate. How does the
operating manage to allocate memory in a multiprogramming environment?

Main memory (RAM) is one of the major component of a computer system. Every program
to get executed must be loaded to the memory. Execution of the program happens once part
or all of the program is loaded and the program becomes process. Hence, there are possibly
number of processes running there will be an input queue of processes on the disk that wait to

23
be brought to the memory. Obviously, programs needs to pass through several steps before
they start to execute.
A program file or binary file is different from data or ASCII file in such a way that it has
code (text) part, data part, and stack part. These parts are attached to the memory at different
stages/times. Attaching these components of a program is known as binding. Address binding
of code or text, data, and stack parts of the program to memory addresses occurs at the
following stages:
Compile time: Address binding is done at program compilation time. Absolute code is
generated if the available memory is known in advance. Stating memory address is
changed, the source code must be recompiled.
Load time: If the memory location to bind is not known in advance, a relocatable code has
tobe generated at the loading time, i.e., the time when the program is brought in to
the memory.
Execution time:With the support from hardware, for example, using base and limit
registers, address maps can be done at execution time. Address binding can be
delayed until execution time if the process has to be moved from segment to
segment

E-tivity 3.2.1 Overview of Memory Management


Numbering, pacing 3.2.1
and sequencing
Title Memory management

Purpose The purpose of this e-tivity is to inspire you to gain insights into memory
management
Brief summary of Video
overall task
https://www.youtube.com/watch?v=6pFFpgwNX68

Spark

Individual task a) Read paper


b) Summarize your understanding

3.2.2 Virtual address versus physical address


Logical (Virtual) Address Space
Processes generate memory addresses to referencing its own memory location or others.
These addresses generated by a process is known as logical or virtual addresses. Collection of

24
such addresses generated by the process, is called logical address space. It starts from 0 to the
size of the process.

Physical Address Space


The actual address generated by the memory management unit where the instruction and data
is located on the physical memory. It can start anywhere a process is located. Collection of
such addresses is referred as physical address space.

Logical and physical addresses are entirely similar in the two stages of address binding, i.e.,
on compile time and load time. They differ at the execution time of the process. Once the
process to execute it produces the logical (virtual) address. This address must be translated to
physical address to access the instruction and/or data. The hardware device that performs
such a translation is known as Memory Management Unit (MMU). MMU maps logical
(virtual) address to physical address.
Every process stores its start address of the process in the base/relocation register. When
logical address is generated by the CPU, it is checked whether it is less than the content of the
limit register. If it is,in the MMU, the logical address is added to the value stored in the
base/relocation register to produce the physical address. Otherwise, the process is trying to
the memory location of other processes, access is denied and a trap is generated. The
illustration is shown in Fig 3.2. The user program doesn’t know the value of the physical
address

3.2.1 Swapping and partitions


Introduction
Concurrently running multiple processes on a uniprocessor environment requries
larger memory. How large the memory be? If we set the size always we want to run
additional process that requries more memory. One can not set the exact size of the
memory that is large enough for all the processes on the system. The solution for this
problem is swapping. What is swapping?
Swapping
It is impractical to imagine the size of main memory to accommodate all the processes.
Normally, if you check the number of processes Windows and Linux are executing at
a time, more than 60 at start up. Keeping all these processes in memory all the time
requires huge amount of memory. A process can be swapped temporarily out of the

25
main memory and stored in the disk is the simplest strategy.
It is the responsibility of the memory manager to swap ideal processes fast enough in
the memory. If you consider any CPU-scheduling algorithm, there is a mechanism that
identifies a process that finishes its quanta recently, or has least priority, or least
waiting time, or long execution time. In a specific scheduling algorithms, there are
processes that are scheduled last. So, the memory manager swaps these processes to
the disk in order to larger space in the main memory and be able to execute new
processes.

Figure 3.3. block diagram for swapping of Process A and Process B


At the time when the need arises the swapped out processes will be swapped into the
memory in its entirety. Idle processes are stored in a disk unless there is a need to run
them, upon which they will be swapped in. Usually, the process replaces another
swapped out process from the memory and claims the same address space it used to
have previously for the purpose of address binding.

E-tivity 3.2.1 swapping in memory management


Numbering, pacing 3.2.1
and sequencing
Title Swapping in Memory Management

Purpose The purpose of this e-tivity is to inspire you to gain insights swapping

26
Brief summary of Video: Swapping in memory management
overall task
https://www.youtube.com/watch?v=ZN-baY3x85o

Spark

Individual task c) Watch video


d) Summarize

Page Replacement Algorithms

Introduction
In the previous activity, we demonstrated how pages are managed. If a page is found
on the physical memory, the instruction continue to execute. But, if page fault happens,
the required page shall be brought to the memory replacing a victim page. How is the
victim page selected? We require an algorithmwhich is efficient enough in such a way
that it minimizes subsequent page faults.

A page is brought into the memory when it is referenced. When a process first is
started, there will be number of page faults. After a while, the number of page faults
should drop to a very low level. When a page fault happens the operating system has
to pick a victim page to be evicted from the memory.
These are solutions to the replacement a page in a memory question. A better solution
take advantage of locality when choosing the victim page to replace.
27
1. Temporal locality: If a word is referenced now, it is likely to be referenced in the
near future.This argues for caching referenced words, i.e. keeping the referenced
word near the processor for a while.
2. Spatial locality: If a word is referenced now, nearby words are likely to be
referenced in the near future.This argues for prefetching words around the
currently referenced word.
3. Temporal and spatial locality are lumped together into locality: If any word in a
page is referenced, each word in the page is likely to be referenced. So it is good to
bring in the entire page on a miss and to keep the page in memory for a while.

At the very beginning a program has no record to refer for locality. At this
point the paging system is said to be undergoing a cold start.
Pages belonging to processes that have terminated are of course perfect
choices for victims.Pages belonging to processes that have been blocked for a
long time are good choices as well.
The Optimal Page Replacement Algorithm (PRA)
Replace the page whose next reference will be furthest in the future.Also known as
Belady's minimum algorithm.Provably optimal. That is, no algorithm generates fewer
page faults. The probability of implementing this algorithm is impractical, because it
requires predicting the future. It has good upper bound on performance.
The Not Recently Used (NRU) PRA
Divide the frames into four classes and make a random selection from the lowest
nonempty class.

1. Not referenced, not modified.


2. Not referenced, modified.
3. Referenced, not modified.
4. Referenced, modified.

Assumes that in each page table entry there are two extra flags R (for referenced) and
M (for modified, or D, for dirty).

28
NRU is based on the belief that a page in a lower priority class is a better victim.
● If a page is not referenced, locality suggests that it probably will not referenced
again soon and hence is a good candidate for eviction.
● If a clean page (i.e., one that is not modified) is chosen to evict, the operating
system does not have to write it back to disk and hence the cost of the eviction
is lower than for a dirty page.

How it works:

● When a page is brought in, the operating system resets R and M (i.e. R=M=0).
● On a read, the hardware sets R.
● On a write, the hardware sets R and M.
Since every page is brought into the memory when referenced, its R bit is set. It must
be cleared frequently. At every k clock ticks, the operating system resets all R bits.
First In, First Out (FIFO) PRA
Belady's Anomaly: Can have more frames yet generate more faults. The natural
implementation is to have a queue of nodes each referring to a resident page (i.e.,
pointing to a frame).When a page is loaded, a node referring to the page is appended
to the tail of the queue.When a page needs to be evicted, the head node is removed
and the page referenced is chosen as the victim.

E-tivity 3.2.1 Page Replacement Algorithms


Numbering, pacing 3.2.1
and sequencing
Title Page replacement

Purpose The purpose of this e-tivity is to inspire you to gain insights into page
replacement

29
Brief summary of Video: Page replacement
overall task
https://www.youtube.com/watch?v=16kaPQtYo28&t=5s

Spark

Individual task e) Watch video


f) Summarize

3.3 Assessment Questions


1. A page fault occurs when
a. The deadlock happens
b. The segmentaion starts
c. The page is found in the memory
d. The page is not found in the memory
2. Bringing a page into memory only when it is needed, this mechanism is called
a. Deadlock
b. Page fault
c. Inactive paging
d. Demand paging
3. Bringing a process from memory to disk to allow space for other processes is
called
a. Swapping
b. Demand paging
c. Deadlock
d. Page fault
4. Which of the following memory allocation scheme suffers from external
fragmentaion ?
a. Segmentation
30
b. Demand paging
c. Swapping
d. Paging
5. Page fault frequency in an operating system is reduced when the
a. Processes tedn to be of an equal ration of the I/O-bound and CPU-bound
b. Size of pages is increased
c. Locality of references is applicable to the process
d. Processes tend to be CPU-bound
6. What is demand paging?
a. A policy for determining which page to replace.
b. Loading a page into memory only on a page-fault.
c. Starting a process with all of its pages resident in physical memory.
d. Discarding the least-recently-used (LRU) page in the system.
7. When would you recommend using an inverted page table?
a. When the maximum amount of physical memory is much less than the
maximum logical address space.
b. When the maximum amount of physical memory is much greater than the
maximum logical address space.
c. When you want to support page sharing across different address spaces.
d. None of the above
8. Why does the OS want to know the working set for each process? Circle
the best answer and briefly explain your reasoning.
a. To determine the best page to replace.
b. To know when memory is over-committed.

3.4 References
4 Modern Operating System, Andrew S. Tanenbaum, Prentice-Hall, Inc., 3rd Edition,
2008, Chapter 4
5 A Silberschatz, Peter B Galvin, G Gagne: Operating System
Concepts, 7th edition, Chapter 8 and 9

31
LESSON 4
DEVICE MANAGEMENT AND FILE SYSTEMS
4.1 Introduction

I/O device management is a very important activity of the operating system. I/O is important
for communication between the user and computer. The following are functions of the
operating system as I/O manager:
♦ Control all the computer I/O devices

♦ Issue commands to I/O devices, catch interrupts and handle errors


♦ Provide an interface between the device and the rest of the system
Accessing and storing information is the task of every computer application. A clear
and obvious requirement of an operating system is thus, the provision of a convenient,
efficient, and robust information handling system. A process can use its address space
to store some amount of information. However, three main problems are associated
with this method. One is the adequacy of the space to accommodate all information to
be stored by the application as the size of the address space is determined by the size
of the virtual address space. The second problem is the data loss as the process
terminates the information kept on its address space is also lost though the information
is required to be retained for long period of time. The third problem is concurrent
accessibility of the information by other processes as information saved in one
process’s address space is accessible only to that process and sometimes there is a
need to make this information as whole or part of it available to other processes as
well. Solving these problems by separately managing information resulted by a
process from its process is a concern of any operating system which is usually done by
storing the information on external media in units called files. The operating system
manages naming, structure, access, use, protection and implementation of these files.
Thus, part of the operating system that deals with files is known as file system which
is to be discussed in this module. File management system consists of system utility
programs that run as privileged applications concerned with secondary storages. The
module is organized as follows. We start by discussing what a file system is followed
by discussion about the file system hierarchy. The concept of directories and the file
system implementation will be explained at last.
4.2 Learning Outcomes
By the end of the lesson, you will be able to;
4.2.1 State the characteristics of input/output devices
4.2.2 Address the principles of input/output hardware and software

32
4.2.3 Define and express the concept of file systems and how a file can be logically
organized
4.2.4 explain the organization of the directory, the FAT and the data area on a single
partition
4.2.5 Discuss details of file system and directory implementations
4.3 Key Terms

Input: raw data that is to be given to a computer for processing


Output: processed information delivered to users or other processes
File: collection of data created by users
Directory: A strutured organization of files
File System: core component of an operating system that handles data organization as files and
defines collection of functions that can be performed on files
4.4Characteristics of I/O Devices
Introduction
The I/O devices are varied that operating systems devotes a subsystem to handle the
variety. The range of devices on a modern computer system include from mice,
keyboards, disk drives, display adapters, USB devices, network connections, audio
I/O, printers, special devices for the handicapped, and many special-purpose
peripherals. These devices can be roughly categorized as storage, communications,
and user-interface. The peripheral devices can communicate with the computer via
signals sent over wires or through the air and connect with the computer via ports, e.g.
a serial or parallel port. A common set of wires connecting multiple devices is termed
as a bus.

E-tivity 4.3.1 characteristics of IO devices


Numbering, pacing and sequencing 4.3.1

Title Characteristics of IO devices

Purpose The purpose of this e-tivity is to enable you to understand


characteristics of IO devices
Brief summary of overall task Video 1: IO devices
https://www.youtube.com/watch?v=Gg8yOzP8EN
Y

33
Spark

Individual task 1. Click on the link provided


2. Watch the video and slides
3. Read the book chapter

Schedule and time This task will take two hours

Next Various sources of business opportunities

4.5 Principles of I/O hardware

I/O devices have three sections:

♦ I/O devices: - concerned with the way data are handled by the I/O device. There are
two types of I/O devices known as blocked and character devices.
● Blocked devices (such as disks) - A block device is one that stores information
in fixed-size blocks, each one with its own address. Common block size range
from 512 bytes to 32,768 bytes. The essential property of a block device is that
it is possible to read or write each block independently of all the other ones.
Disks are the most common block devices. A disk is a block addressable
device because no matter where the arm currently is, it is always possible to
seek to another cylinder and then wait for the required block to rotate under
the head.
● Character devices (such as printers, mouse and NIC) - The other type of I/O
device is the character device. A character device delivers or accepts stream of
character, without regard to any block structure. It is not addressable and does
not have any seek operation.
♦ I/O Unit: indicates the hardware components. There are two major components –
Electronic Component (Device controller/Adapter) and the Mechanical
Component (the moving parts)

34
♦ Memory-mapped I/Ois a technique for communicating with I/O devices.

● In this case a certain portion of the processor's address space is mapped to the
device, and communications occur by reading and writing directly to/from
those memory areas.
● Memory-mapped I/O is suitable for devices which must move large quantities
of data quickly, such as graphics cards.
● Memory-mapped I/O can be used either instead of or more often in
combination with traditional registers. For example, graphics cards still use
registers for control information such as setting the video mode.
● A potential problem exists with memory-mapped I/O, if a process is allowed
to write directly to the address space used by a memory-mapped I/O device.
♦ Direct Memory Access (DMA): is a technique for moving a data directly between
main memory and I/O devices without the CPU’s intervention. In the absence of
DMA reading from a disk is done with the following steps:
● The controller reads the block (one or more sectors) from the drive serially, bit
by bit, until the entire block is in the controller’s internal buffer
● The controller computes the checksum to verify that no read errors have
occurred
● The controller causes an interrupt
● The OS reads the disk block from the controller’s buffer a byte or a word at a
time and stores it on memory
E-tivity 4.4.1 Principless of IO devices
Numbering, pacing and sequencing 4.4.1

Title Principles of IO devices

Purpose The purpose of this e-tivity is to enable you to understand


IO devices
Brief summary of overall task Watch video
https://www.youtube.com/watch?v=ouRJePSWHtQ
.
Spark

Individual task 4. Click on the link provided


5. Watch the video and slides
6. Read the book chapter
7. Give your answers in discussion forum 4.2.1

35
Interaction begins 1. Post your answer in the discussion forum 4.2.1
2. Read posted work from 2 colleagues
3. Post at least one comment on their work and give
constructive criticism
Schedule and time This task will take two hours

Next Various sources of business opportunities

4.6 Disk Arm Scheduling Algorithm

The OS maintains queue of requests for each I/O operation and it uses various disk
scheduling algorithms. To mention some:
1. First Come First Served (FCFS) : Accept a request one at a time and carries them
out in that order
E.g. Track initial position: 11
Track request: 1,36,16,34,9,12
Service order: 1,36,16,34,9,12
Arm motion required: 10, 35, 20, 18, 25, 3,
Total= 111 tracks
The simplest and the fairest of all, but it doesn’t improve performance
2. Shortest Seek First (SSF) : It handles the closest (the least disk arm movement)
request next, to minimize seek time.
E.g. Track initial position: 11
Track request: 1,36,16,34,9,12
Service order: 12,9,16, 1, 34, 36
Arm motion required: 1, 3, 7, 15, 33, 2
Total= 61 tracks
Advantage: Performance (efficiency), provides better performance
Disadvantage: Possibility of starvation (it lacks fairness)

3. SCAN (Elevator) Algorithm : The disk arm keeps moving in the same direction
until there are no more outstanding requests in that direction, then it switches
direction
Direction bit 1= up, 0=down
E.g. Track initial position: 11
Track request: 1,36,16,34,9,12
Direction bit: 1
Service order: 12, 16, 34, 36, 9, 1
Disk arm motion: 1, 4, 18, 2, 27, 8
Total= 60 tracks
36
It provides better service distribution
4. C-SCAN (Modified Elevator) Algorithm
It restricts scanning to one direction only. A slight modification of elevator algorithm
that has smaller variance in response times is always scan in the same direction. When
the highest numbered cylinder with a pending request has been serviced, the arm goes
to the lowest-numbered cylinder with a pending request and then continues moving in
an upward direction. In effect, the lowest-numbered cylinder is thought of as being
just above the highest-numbered cylinder.

It reduces the maximum delay experienced by new request

E-tivity 4.5.1. Disk Scheduling


Numbering, pacing and 4.2.2
sequencing
Title Disc Scheduling
Purpose The purpose of this e-tivity is to enable you understand what is a
disck scheduling
Brief summary of overall Video
task https://www.youtube.com/watch?v=u_ggRGYU8sg
Spark

Individual task 1. Click on the link provided


2. Watch the video and slides
3. Read the book chapter
4. Give your answers in discussion forum 4.2.2
5. Print the table on “assessment of market problem” do a
summary of self-examination of a business need.
6. Post the scanned table in the discussion forum 4.2.2
Schedule and time This task will take 2 hours
Next Viability of a business idea

37
4.7 Assessment Questions

1. Explain the I/O software goals


2. Discuss the two most widely used approaches to improve disk
I/O performance
3. What is DMA? What advantages does it provide to the operating
system?

4.8 References

● Tanenbaum, Modern Operating System, second edition, Chapter 6

● William Stalling, Operating Systems:Internals and Design Principles, seventh edition,


chapter 12.

38
LESSON 5
SECURITY AND PROTECTION

5.1 Introduction to ERP


Operating system consists of a collection of objects, hardware or software each object
with unique name that can be accessed through a well-defined set of operations. The
system should allow different users to access different resources in a shared way and
needs to ensure that each object is accessed correctly and only by those processes that
are allowed to do so. Security ensures the authentication of system users to protect
the integrity of the information stored in the system as well as the physical
resources of the computer system. The security system prevents unauthorized access,
malicious destruction or alteration of data, and accidental introduction of
inconsistency. Protection mechanisms control access to a system by limiting the types
of file access permitted to users. In addition, protection must ensure that only
processes that have gained proper authorization from the operating system can operate
on memory segments, the CPU, and other resources. This unit covers in detail the
concept of operating system security and the mechanisms used to provide system
protection. We start our discussion with different security threats, intruders, and
accidental data losses followed by the protection mechanisms enforced to overcome
the threats
5.2 Learning outcomes
By the end of the lesson, you will be able to;
5.2.1 Explain what a computer security entails
5.2.2 Identify different threats to a system security
5.2.3 Discuss the goals and principles of protection in a modern computer
system
5.2.4 Discuss the different security protection mechanisms enforced by a system

5.3 Key Terms

39
• Computer Security: The prevention and protection of computer resources
from unauthorized access, use, alteration, degradation, destruction, or any other
problem.
• Threat: Any person, act, or object that poses a danger to computer security
• Intruder: Any person, or program that carries out malicious or unauthorized
activity on a system and jeopardize its safety.
• Attack: A threat that is carried out or practiced on a system
• Cryptography: A means used to hide communicated message content
• Authentication: is a process of validating one's identity
• Access Control: A method used to define users' interaction with a system

5.4 Overview of Computer Security


Introduction
"The most secure computers are those not connected to the Internet and shielded
from any interference". However, in this era of information access anywhere and
at anytime, the phrase violates the goal of communication and resource sharing.
- How can one then keep itself connected and accessable anytime without
jeopardaizing its safety?
- What are the concerns out there that threatens one's safety?
- What measures one shall take to overcome these threats?

This activity builds your knowledge about computer security concerns as well as
counter measures set by the operating system to be taken to secure all resources
of a system.
Current computer systems are designed in a way to handle several resources and bulk
information. As the number of information stored grows, the need to protect this
information from damage, unwelcomed change as well as unintended access is
becoming more important. However, several sophisticated systems are also being used
that opposes the objectives of the operating system and abuse the information causing
catastrophic disasters. Security refers to the wellbeing of a system that requires
adequate protection as well as consideration of the external environment within which
the system operates. A secured system is thus, a system whose resources are used as
intended in all situations. There are several situations which violates security and
causes a system unsecured. These problems can be external or internal to the system
as well as intended or unintended problems. Security deals with both guarding against
external threats as well as authorized users as potential intruders. System security has
three main objectives. These are: Confidentiality: preventing, detecting and deterring
improper disclosure of information, Integrity: preventing, detecting and deterring
40
improper modification of information and Availability: preventing, detecting and
deterring improper denial of access to services. Security has many aspects among
which the nature of the threat, the intruders and accidental data loss are the most
important ones. Let’s discuss each of the topics in detail
Threats
A threat is a potential occurrence that can have an undesired effect on the assets and
resources associated with a computer system. These are basically situations which
attacks the three goals of a system security Confidentiality is basically about secrecy
of information which requires an information should not be exposed to unauthorized
users. Integrity focuses on protecting information from alteration and deletion by
unauthorized users. Availability deals with avoiding disturbances that cause a system
to be unavailable or unusable. Exposure of information, altering information, and
denial of service are the threats faced by the security objectives mentioned
respectively. The disclosure threat gives information to someone who should not have
it. In computers, the information may be compromised while it is stored on the
machine or while it is being transmitted over the network. An integrity threat makes
unauthorized change to information stored on a computer system or in transit over the
network. Denial of service threat blocks access to some computer resources
intentionally as a result of a malicious action taken by another user

E-tivity 5.3.1 OS and Computer Security


Numbering, pacing and 5.3.1
sequencing
Purpose The purpose of this e-tivity is to enable you appreciate role of OS in
computer security

Brief summary of Read this linked video


overall task Another video
https://www.youtube.com/watch?v=3kKkOBClw1Q

Spark

41
Individual task a) What is security
b) Explain role of OS in security
c) What is a threat ?
d) What differences are there between active and passive intruder ?
e) What makes intruders attack a system ?
f) What are the three goals of computer security ?

5.5 System Security Attacks


Introduction
In activity 5.1., we have talked about security threats which attempt to break system's
security by standing against any of the security goals. In this activity, we will try to
explore the different attacks exercised on a system security along with design
principles to be considered while developing an operating system so that a system can
have a resistance to these attacks.

A system can be attacked by different attacking situations that test its vulnerability.
The attacks can be physical which involves stealing or physically damaging system's
resources or logical which involves using malicious programs and damage system's
resources. In general computer security attacks are classified as inside or outside
attacks.

Inside attacks
These kind of attacks are carried out by an entity which has an access privilege. The
attacker can steal or physically damage resources or after successful penetration to a
system, the intruder can perform its desired operation and attack the system. Several
inside logical attacks can be imposed on systems. To mention some:
- Trojan horses: is an apparently innocent program but with codes inside that
causes unintended operation such as modifying, deleting or even transferring
the user’s information onto the attacker’s location. These programs trick the
user by using an appealing and convincing presentation which makes the user
believe and run the program.
- Login spoofing: the attacker presents a fake login interface which looks
exactly like the true login interface. The user then gives his/her authentication
data to the fake interface which collects and sends the information to the
attacker and exits. The original login interface is displayed then and the user
42
believes of making some error previously on the information and thinks the
system is displaying the interface for the second time.
- Logic bomb: is a code embedded in a program that “explodes” when certain
conditions are met, e.g. a certain date or the presence of certain files or users.
Logic bombs also often originate with the developers of the software.
- Trap doors: is a secret entry point into a program, often left by the program’s
developers, or sometimes delivered via a software update. These are codes
included into a program to help the attacker bypass some normal checks.
- Buffer overflow: is an attack that happens on a system by exploiting bugs in a
program and using these bugs to damage the system. The bug can be a simple
case of poor programming, in which the programmer neglected to code bound
checking on an input field. The attacker after examining the nature and holes
of the program, writes a program that sends more data than the program was
expecting causing memory overwriting by those outbound values.

E-tivity 5.3.2 System Security


Numbering, pacing and 5.3.2
sequencing
Purpose The purpose of this e-tivity is to enable you appreciate role of isystem
security

Brief summary of Read this linked video


overall task https://www.youtube.com/watch?v=3yLf2dNqDzw

Spark

Individual task 1. How does the buffer overflow attack a system ?


2. What are the solution to protect system from worm
attacks ?
3. What is the difference between a virus and a worm ?
4. What is a trojan horse ? how does it operate and attack a
system ?
43
what is the difference between inside attack and outside
attack

5.6 Protection mechanisms


Introduction
An operating system has the responsibility of enforcing security protection
mechanisms to avoid possible threats from happening and protect the various objects
of a system. Each asset of a system has a name and well defined set of operations
through which access is made. In this section various countermeasures set by a
computer system to protect itself against security attacks will be addressed along with
the design principles that shall be followed to strengthen system's security.
Design principles of an operating system
A core set of principles to operating system security design are:
● Least privilege: Every object (users and their processes) should work within
a minimal set of privileges; access rights should be obtained by explicit
request, and the default level of access should be “none”.
● Economy of mechanisms: security mechanisms should be as small and
simple as possible, aiding in their verification. This implies that they should
be integral to an operating system’s design, and not an afterthought.
● Acceptability: security mechanisms must at the same time be robust yet
non-intrusive. An intrusive mechanism is likely to be counter-productive
and avoided by users, if possible.
● Complete: Mechanisms must be pervasive and access control checked
during all operations — including the tasks of backup and maintenance.
● Open design: An operating system’s security should not remain secret, nor
be provided by stealth. Open mechanisms are subject to scrutiny, review,
and continued refinement.

With this in mind, let's move our discussion to some major security guarding
mechanisms implemented by a system to assure secured resource communication and
access

1. Cryptography
Introduction
Have you ever heard the word cryptography? Or have you seen people communicating
with some weird, non-understandable writings where only the communicating parties
know what it means? Well, in this activity we are going to address what a
cryptography is,which is one of the most popular security provision ways, its
importance in a system security and discuss some cryptography schemes.
44
Encryption is a process of transforming a message with an intention of hiding its
meaning to avoid possible attacks on it. Encryption is achieved with a concept of
cryptography which converts the original data, termed as plaintext, into a secreted one,
termed as cyphertext, that can only be understood and reverted back by legitimate
users of the data. Reverting back from the cyphertext to the plaintext is known as
decryption. Most of the time encryption and decryption works well through security
by obscurity where the encryption and decryption algorithms are made publicly
accessible while the contents are private. Encryption and decryption algorithms have a
secret parameter known as key which needs to be known by only authorized users and
with which the text is converted to its required representation (cypher for encryption
and plain for decryption). An encryption function can be stated as
C= E(P, Ke) where a cyphertext C is obtained by an encryption algorithm E
implemented on a plaintext P with an encryption key Ke. The decryption can also be
stated as P=D(C,Kd),where a plaintext P of an encrypted data is obtained by
implementing a general decryption algorithm D with the cyphertext C and decryption
key Kd as parameters. Figure8.1 shows the pictorial representations for encryption
and decryption

Figure 5. 1. Encryption and decryption of a message

Properties of good encryption technique are:


● Relatively simple for authorized users to encrypt and decrypt data.
● Encryption scheme depends not on the secrecy of the algorithm but on a
parameter of the algorithm called the encryption key.

Extremely difficult for an intruder to determine the encryption key

45
E-tivity 5.4.1 Data Ecryption
Numbering, pacing and 5.4.1
sequencing
Purpose The purpose of this e-tivity is to enable you appreciate the importance of
encryption
Brief summary of Video
overall task https://www.youtube.com/watch?v=r4HQ8Bp-pfw

Spark

E-moderator 1. How does the public key cryptography overcome the


interventions limitations of private key cryptography ?
2. How does a receiver convert a cyphertext to a plain text in
a substitution private key cryptography ?
3. What are the possible vulnerabilities of a password?
4. How does a challenge response authentication works ?
5. What are the two implementations of MAC model?
6. How does the DAC model differ from the MAC model?
7. What advantages does the RBAC has over the other access
control methods?

Schedule and time This activity should take two hours


Next Process of protecting your intellectual property

5.7 Assessment Questions


[1] How does the public key cryptography overcome the limitations of private key
cryptography ?
[2] How does a receiver convert a cyphertext to a plain text in a substitution private
key cryptography ?
46
[3] What are the possible vulnerabilities of a password?
[4] How does a challenge response authentication works ?
[5] What are the two implementations of MAC model?
[6] How does the DAC model differ from the MAC model?
[7] What advantages does the RBAC has over the other access control methods?

5.8 References
6 Tanenbaum, "Modern Operating System", 2nd edition, chapter 9

47
LESSON 6
SPECIAL TOPICS

6.1 Introduction
So far we had seen the different features of a general purpose operating system in
detail. However, different operating systems are designed and used according to the
requirements and environment in which they are implemented. For instance critical
applications with high functionality such as medical applications, space shuttle, etc
sets different requirement than a not very critical applications with varying
functionality like PDA, phone, smart card, microwave oven, etc. thus the operating
system used in each environment should be able to suit the situation and perform
what is being requested with the desired property. A complex software architecture
implemented as multiple concurrent communicating tasks and interrupt handlers,
with priority requirements necessitates a real-time operating system. a real-time
operating system is a special system which has no control over its time domain but
the progress of time of the environment which dictates how time has to progress
inside the system. The requirements of real-time systems differ from those of many
of the systems we have described, mainly because real-time systems must produce
results within certain time limits. Inside technical artifacts, for instance, many
operations depend on timing, e.g. the control of turbines or combustion engines etc.
A real time system by itself is a very wide concept which cannot be covered in a
single unit like this. Thus, this chapter discuss a general high level description of what
a real time OS is along with the requirements of a real time system and the different
classifications of such systems to enable you understand the differences between
such operating systems and the ones discussed so far. Another special topic to be
discussed in this unit is a virtual machine. A virtual machine, VM, is an isolated
replica of a real machine that behaves idetical to the real physical machine but with
no intereference to the real machine or any other VMs. A virtual machine is an
operating system OS or application environment that is installed on software which
48
imitates dedicated hardware. For the end user the look and feel of the running an
application or operating system on the virtual machine is the same as on a dedicated
hardware.

6.2 Lesson Learning Outcomes


By the end of the lesson, you will be able to;
● Discuss installation and configuration of an OS
● Explain and discuss real time and embedded system
● Discuss the special requirements of a real time system
● Differentiate between different virtual machine technologies and how to
manage them
● State how to migrate from physical to virtual machines

6.3 Key Terms

Real time system: A system that must process information and produce a
response within a specified time
Embedded system: A system specifically designed for a particular operation
Virtual Machine: A software computer that, like a physical computer, runs an
operating system and applications

6.4 Basic OS Configuration and Maintenance


Introduction

How do we identify the requirements of OS? How do we conduct installation and


configuration of OS?

How can we run different operating systems on a single machine? How does a
virtual machine work?
In this activity, we are going to address these question and understand the basic steps
followed in system installation and configuration.
Requirements Identification

As a software, operating systems do have hardware and software requirements. Before

49
you perform installation of operating systems. You have to consider the following
basic requirements:
● First, identify what kind of microprocessor you have. Is it 32-bit? Or 64-bit?
Modern operating systems comes with both flavors. Some are only 64-bit OSs.
Pick the operating system with the appropriate microprocessor word length.
● Second, make sure the main memory satisfies the minimum requirement of the
operating system. In order to run several other applications after the operating
system is bootstrapped, the memory required for the operating system
mentioned by the vendor is the minimum.
● Next, identify the hard disk space requirement of the operating system and
make sure it is available on the machine. Just like the memory requirement, the
operating system states the minimum requirement of the hard disk space.
● Last, make sure the device drivers (software) of the peripheral devices are
available. These software include device drivers for display, audio, network,
etc…for your specific machine. If the operating system fails to identify a
peripheral device connected to your machine, you cannot make you of that
specific peripheral. To make sure it operates correctly, install the appropriate
device driver for that specific machine after installing the operating system.
Usually, modern operating systems have a pack of device drivers for known
hardware. But, you have to take a precaution on taking a backup of the device
drivers.
6.5 Installation of OS
After going through the identification of requirements of the operating system for
installation, you can jump to installing the selected OS. We picked the two operating
systems, Windows 7 and Linux’s Ubuntu for the demonstration.
On a specific disk drive, you can only install a single OS. Otherwise, conflict will rise.
If you do have two partitions on the hard disk, you may install different operating
systems on the different partitions. In doing so, make sure that you install the
Windows OS first and then the UNIX OS later. If you reverse this installation process,
you may end up not accessing the installed UNIX OS. Let’s see how to install the two

50
OSs.

Installing Windows 7 OS
Check you machine’s compatibility for the following criteria before you start to install:
● 1 gigahertz (GHz) or faster 32-bit (x86) or 64-bit (x64) processor
● 1 gigabyte (GB) RAM (32-bit) or 2 GB RAM (64-bit)
● 16 GB available hard disk space (32-bit) or 20 GB (64-bit)
● DirectX 9 graphics device with WDDM 1.0 or higher driver
If your machine satisfies the above criteria, you can begin the installation process.
Put Windows 7 DVD in your machine’s DVD drive and boot it. It will now load the
setup files.

E-tivity 6.5.1 OS Installation


Numbering, pacing and 6.5.1
sequencing
Purpose The purpose of this e-tivity is to enable you understand OS installation

Brief summary of
overall task View this video
https://www.youtube.com/watch?v=0kY9v5GNbb4

51
Spark

Individual task a) Why is it important to install an OS


b) Whats process of installation .

6.6 Basic Configuration of OS

After installing the operating systems, you can conduct configuration to customize the
features of the operating system. Different tools are used for configuration of the
operating systems.

Configuration of Windows 7
How to Start the System Configuration (msconfig.exe) Tool?

As with most Windows tools, you can start this utility in several ways. In Windows 7,
search for "system" or "system configuration" in the Start Menu and click its shortcut.

52
Figure 6.41. System Configuration Utility for Windows 7 from the start menu

Figure 6.42. ystem Configuration Utility for Windows 7 from the run menu

Another method that works in all operating systems is to type msconfig.exe in the Run
window, the Start Menu search box (in Windows 7).

53
The Windows Startup Selection
In the General tab, there are options available for how you want Windows to start up:
● Normal startup - starts Windows as is, with ALL the installed startup items,
drivers and services.

Figure 6.43. Windows startup selection menu

Diagnostic startup - this mode is similar to booting in Safe Mode. Safe Mode runs
only Windows services and drivers. This mode might run, on top of them, networking
services or important services from third-party applications such as your antivirus,
firewall or security suite.

This mode is useful if you want to rule out Windows files and services as being the
source of possible system stability problems. If you select it and click Apply, you will
notice that Selective startup is then shown as selected.

Selective startup - starts Windows with its basic services and drivers. Also, it allows
you to select other services and startup items you want to run, from
the Services and Startuptabs.

Configuring the Boot Procedure

The Boot tab is a very important one. Here you can view the operating systems
installed on your computer and select the default one – if the machine is a multi-
booted.

54
To select a new default operating system, click on it and then on "Set as default".

Figure 6.44. Boot tab

For each of the existing operating systems, if you click on Advanced options, you can
set things such as the number of processors (cores) allocated to the operating system at
boot, or the amount of RAM memory available to it.

Figure 6.45. Boot Advanced Options

55
6.7 Introduction to Real Time and Embedded OS
Introduction
A real time operating system is category of an operating system that is used to handle
real-time applications. Real time applications are those which guarantee both
correctness of result and the added constraint of meeting a deadline. So a real-time
system is a computer system which needs to produce a result within a specified
deadline period. Thus results produced after the deadline has passed, even if correct
may be of no real value. To achieve such objective, a real-time system can’t use the
scheduling and other process management algorithms discussed so far for the
traditional, non-time constrained operating systems. Some modifications need to be
included in those algorithms so as to be used in a real time environment. In this
activity, we will try to address issues related with real-time operating systems and the
changes arose to run these software.

Real-time systems can run on traditional computer hardware or specially designed


devices such as home appliances, communication devices, etc being embedded on
them. An embedded system is thus a computing device that is part of a larger
system in which the presence of a computing device is often not obvious to the
user. It is a reactive computing situation where communication is through reaction/
response to external real world events. For example, consider an embedded system for
controlling a home dish-washer. The embedded system may allow various options
for scheduling the operation of the dishwasher-the water temperature, the type of
cleaning or even a timer indicating when the dishwasher is to start. Most likely,
the user of the dishwasher is unaware that there is in fact a computer embedded
in the appliance. Though a real-time system can be implemented as an embedded
system, it is good to note that not all embedded systems are real time. For instance, an
embedded system controlling a home furnace may have no real-time requirements
whatsoever. According to the requirement it has, a real time system can be either hard
or soft.
A hard real time system is a one with the most strict time requirements assuring very
critical real time tasks completed within the deadline. These systems cause a severe
problem when an incorrect operation, usually due to a missed deadline happens.
Examples are weapons systems, antilock brake systems, flight-management systems,
and health-related embedded systems. In all these cases, unless the system responds
for events according to the time schedule, a catastrophic problem arises
A soft real time system is a bit flexible and less restrictive system than the hard one. It
gives high priority for critical real-time tasks and maintains that priority until it
completes. Many commercial operating systems as well as Linux provide soft real-
time support.
56
Requirements of real time systems

A real time system is generally a system with specific purpose, small size,
inexpensively mass-produced and with Specific timing requirements. Real time
systems are designed to a single purpose and you can’t use it to do other tasks than the
specified one during design. Moreover, most real time systems are used in space
constrained environments which also places a CPU and memory limitation to these
systems. As these systems are also mostly used with home appliances and consumer
devices which are mass manufactured in cost aware environments, the processors of
such systems also needs to be manufactured by with less cost. Lastly, the time
requirement is the defining characteristics of a real time system which makes it to
react to events in a timely manner. In general, a real time system has three main
requirements
1. Predictability : the timing behavior of the operating system needs to be
predictable
2. Management: the operating system should manage timing and scheduling of as
it possibly has to be aware of task deadlines. Moreover, the OS must provide
precise time services with high resolution.
3. Speed: The OS must be fast in all responses and this is practically important.

6.8 Basic Virtual Machines


Introduction
Virtualization is a mechanism that came to existence around 1970s by which an
existing interface of a system is extended to mimic the behavior of another system. It's
used mainly to handle platform diversity by running applications on the Virtual
Machines(VM) which simplified portability and flexibility issues. Concerns related
with VM are:
● How are VMs possible? what are the technologies out there?
● Is it possible to move between VM and actual/physical device?
● Is managing a VM a complex task?

This activity tries to elaborate these concerns


Overview

A virtual machine program is a computer program that creates a virtual computer


system, complete with virtual hardware devices. This virtual computer “machine” runs
as a process in a window on your current operating system. You can boot an operating
57
system installer disc (or live CD) inside the virtual machine, and the operating system
will be “tricked” into thinking it’s running on a real computer. It will install and run
just as it would on a real, physical machine. Whenever you want to use the operating
system, you can open the virtual machine program and use it in a window on your
current desktop.
Virtual machine runs on your current operating system – the “host” operating system
– and provides virtual hardware to “guest” operating systems. The guest operating
systems run in windows on your host operating system, just like any other program on
your computer. The guest operating system runs normally, as if it were running on a
physical computer – from the guest operating system’s perspective, the virtual
machine appears to be a real, physical computer.
Virtual machines provide their own virtual hardware, including a virtual CPU,
memory, hard drive, network interface, and other devices. The virtual hardware
devices provided by the virtual machine are mapped to real hardware on your physical
machine. For example, a virtual machine’s virtual hard disk is stored in a file located
on your hard drive.
Your virtual machine’s operating system is stored on a virtual hard drive — a big,
multi-gigabyte file stored on your hard drive. The file is presented to the operating
system as a real hard drive. This means you won’t have to mess around with
partitioning.
A virtual machine also gives you a way to run another operating system’s software. So,
if you’re a Linux user, you can install Windows in a virtual machine and run Windows
desktop programs in that virtual machine. Mac users can also use virtual machines to
run Windows software.
Virtual machines are also “sandboxed” from the rest of your system, which means that
software inside a virtual machine can’t escape the virtual machine and tamper with the
rest of your system. A virtual machine can be a good place to rest out programs you
don’t trust and see what they do.
Advantages of a virtual machine are:
● Flexibility
● Portability
58
● Isolation
● Security
Virtual Machine Technologies

There are several different virtual machine programs you can choose from among
which:
● VirtualBox (Windows, Linux, Mac OS X): VirtualBox is very popular because
it’s open-source and completely free. There’s no paid version of VirtualBox, so
you don’t have to deal with the usual “upgrade to get more features” upsells
and nags. VirtualBox works very well, particularly on Windows and Linux
where there’s less competition — it’s a good place to start out.
● VMware Player (Windows, Linux): VMware has their own line of virtual
machine programs. You can use VMware Player on Windows or Linux as a
free, basic virtual machine tool. More advanced features require upgrading to
the paid VMware Workstation program. We recommend starting out with
VirtualBox, but if it doesn’t work properly you may want to try VMware
Player.
● VMware Fusion (Mac OS X): Mac users will need to buy VMware Fusion to
use a VMware product, as the free VMware Player isn’t available on a Mac.
However, VMware Fusion is more polished.
Parallels Desktop (Mac OS X): Macs also have Parallels Desktop available. Both
Parallels Desktop and VMware Fusion for Mac are more polished than the virtual
machine programs on other platforms — they’re marketed to average Mac users who
might want to run Windows software

6.9 Ass
Managing Virtual Machines

As virtual mancine technology becomes very much used,physical hosts have been freed from
the bounds of single-instance operating systems and users efficiently multiplex their hosts
with multiple operating systems as virtual machines (VMs). But, the density of operating
systems on a host also increases the management requirements.
Aspects of virtual machine management include:
59
● Performance monitoring
● Optimizing the mix of virtual machines that should reside on each physical server
● Automating virtual machine provisioning
● Load balancing
● Patch management
● Configuration management and fail-over
● and enabling policy-based orchestration to automatically trigger the appropriate
responses to events
To manage virtual machine, let’s consider a specific virtual machine technology –
Oracle VirtualBox and discuss the tasks performed by this VM manager.
Minimum system requirements:
● The Oracle VM Manager template requires approximately 15GB of diskspace
on the host filesystem (5GB to host the .ova file download and 10GB for the
actual Virtual Machine appliance).
● The virtual machine is configured with 4GB RAM, to run the software
optimally.
● Statically allocated IP address and hostname for the Virtual Machine - when
configuring the Oracle VM Manager template you are required to provide a
static IP address for the VM, along with a fixed hostname, Oracle VM Manager
needs to be able to do two-way communication between the Manager instance
and the Oracle VM server agents running on different servers. Once an Oracle
VM server is discovered by the Manager instance, it expects the same IP
address to exist for future communications.
● Oracle VM VirtualBox 4.1.8 or later - download and install Oracle VM
VirtualBox for your host system prior to starting the installation of the template.

60
6.10 Assessment Questions
6.10.1 Discuss the main difference between a physical and virtual machine
6.10.2 What advntages and disadvntages does a VM bring to a system
6.10.3 Install and configure a virtual machine using a VMWare player on both
Windows and Linux environment
6.10.4 Use the Oracle VirtualBox VM managere and perform VM management
tasks discussed

6.11 References
Silberschatz, Galvin, Gagne, " Operating System Principles", 8th edition, chapter 19

61
LESSON 7
INFORMATION SYSTEMS SECURITY

7.1 Introduction
Information systems in public sector need to be secure to realize public confidence. Citizens
need to be sure that their data is safe when stored in digital media and accessed through the
internet. Here I will take you through ways of securing the information systems

7.2 Lesson Learning Outcomes


By the end of the lesson, you will be able to;

 Appreciate the need to secure data in systems;


 understand the CIA arpeggio of Confidentiality, Integrity and Availability
 acknowledge the challenges that arise when data need be accessed across
networks;
 acknowledge the challenges that arise when data is to be shared across
systems;
 identify the some resources that can assist to secure information .

 Articulate the measures to be taken to ensure trade secrets are protected


7.3 Information systems security
Data is a vital resource in an organization that need be guarded. Actually, organizations
runs by data: employment data, income data, supplies data, sales data, patient’s data,
number of fatalities , etc. The world therefore revolve around data. That means, even
the acquisition of information technology in public sector is all in a bid to manage the
data resource. Specifically, we use IT to speed up data access .

E-tivity 7.3.1 Information Systems Security


Numbering, pacing and 7.3.1
sequencing
Purpose The purpose of this e-tivity is to enable you understand security

62
Brief summary of
overall task View this video
https://www.youtube.com/watch?v=vJeSxJesyw4

Spark

Individual task c) What is security


d) Limitations and tradeoff in security

7.4 Physical and logical security


When security information systems, both physical and logical security are necessary.
Physical security relates to securing the data devices. Example, protect the physical computer,
server, printer, network cables etc. We control/restrict access to only those authenticated to
physically handle them. Logical security relates to access control to data. We use passwords,
biometrics to try control who access. Listen to video in 8.2.1

7.5 CIA triad


When we securing systems, we ensure data meets three goals: Confidentiality, integrity and
availability (CIA).

Confirdentiality we ensure privacy of data; Integrity is about correctness while availability


means legitimate users have access to data when they need to.

E-tivities 7.5.1 CIA Triad


Numbering, pacing and 7.5.1
sequencing
Purpose The purpose of this e-tivity is to enable you understand CIA Triad

63
Brief summary of View the video
overall task https://www.youtube.com/watch?v=szcmb-lcYV4

Spark

Individual task Explain how you understood what is CIA triad from the video

7.6 Assessment Questions


Distinguish between logical and physical security
Explain why data is important in an organization

7.7 References

Alford, J., & Greve, C. (2017). Strategy in the Public and Private Sectors: Similarities, Differences and
Changes. Administrative Sciences, 7(4), 35. https://doi.org/10.3390/admsci7040035

Alshehri, M. A., & Drew, S. (2010). Implementation of e-Government: Advantages and Challenges.
International Conference E-Activity and Leading Technologies 2010, 79–86.
http://www98.griffith.edu.au/dspace/handle/10072/40620%5Cnpapers2://publication/uuid/0
9E5E6A6-EC7D-4E17-84FB-677189A5AB74

Askenäs, L., & Westelius, A. (2003). Five roles of an information system: A social constructionist
approach to analysing the use of ERP systems. Informing Science, 6(June 2014), 209–220.
https://doi.org/10.28945/527

Bellman, J., & Eggers, W. D. (2015). The journey to government’s digital transformation. Deloitte
University Press, 1–38.

Beynon-Davies, P., & Beynon-Davies, P. (1998). Information Systems and Organisations. In


Information Systems Development. https://doi.org/10.1007/978-1-349-14931-5_3

Bourgeois, D. T. (2014). Chapter 1 : What Is an Information System ? 1–8.


https://bus206.pressbooks.com/chapter/chapter-1/

Grimsley, M., & Meehan, A. (2007). e-Government information systems: Evaluation-led design for
public value and client trust. European Journal of Information Systems, 16(2), 134–148.
https://doi.org/10.1057/palgrave.ejis.3000674

Grönlund, Å., & Horan, T. A. (2005). Introducing e-Gov: History, Definitions, and Issues.
64
Communications of the Association for Information Systems, 15(June).
https://doi.org/10.17705/1cais.01539

Isachenko, N. N. (2018). The role of information and informational and communication technologies
in modern society. Utopia y Praxis Latinoamericana, 23(82), 361–367.
https://doi.org/10.5281/zenodo.1512122

Kayode, O., & Morakinyo, A. (2020). Responsible design, implementation and use of information and
communication technology. In International Federation for Information Processing (Vol. 2).
Springer International Publishing. https://doi.org/10.1007/978-3-030-45002-1

Layer, C., & In, D. (n.d.). Chapter 3 Evolution of Telecommunication. 43–73.

Lee, K. R. (2002). Impacts of Information Technology on Society in the new Century. Structure, 1–6.
https://www.zurich.ibm.com/pdf/Konsbruck.pdf

Lipaj, D., & Davidavičienė, V. (2013). Influence of Information Systems on Business Performance /
Informacinių Sistemų Įtaka Įmonės Veiklos Rezultatams. Mokslas - Lietuvos Ateitis, 5(1), 38–45.
https://doi.org/10.3846/mla.2013.06

Rajabbaigy, M., Amirkhani, A., Mohammadian, Z., & Khorshidi, M. F. (n.d.). The role of information
systems in public sector ’ s effectiveness and performance ( or functioning ): The case of Tehran
Provincial.

Sundgren, B. O. (2005). What Is a Public Information System? International Journal of Public


Information Systems, 1(1), 81–99.

Watson, B. (2002). Management problems in the public sector. Public Money and Management,
22(3), 5–7. https://doi.org/10.1111/1467-9302.00312

65

You might also like