Operating Systems

 



What is an Operating System 

• A program that acts as an intermediary between a user of a computer and the computer hardware 

• Operating system goals: 
         • Execute user programs and make solving user problems easier
         • Make the computer system convenient to use 
         • Manage the computer hardware in an efficient manner

Operating-System Structure

  Computer system can be divided into four components: 

Hardware – provides basic computing resources 
           * CPU, memory, I/O devices 
Operating system 
           * Controls and coordinates use of hardware among various applications and users 
Application programs – define the ways in which the system resources are used to solve the computing problems of the users 
           * Word processors, compilers, web browsers, database systems, video games 
Users 
           * People, machines, other computers

Operating-System Structure




Operating System Definition 

• OS as a control program 
        * Controls execution of programs to prevent errors and improper use of the computer 
• OS as a resource allocator 
        * Manages all resources 
        * Decides between conflicting requests for efficient and fair resource use

Operating System Definition – Common Beliefs 

• “Everything a vendor ships when you order an operating system” 
“The one program running at all times on the computer” - kernel. 
• Everything else is either 
    * a system program (ships with the operating system) , or 
    * an application program.

Computer-Start up – How OS comes to work? 

BIOS program is loaded at power-up or reboot     
    • Typically stored in EPROM, generally known as firmware 
    • Initializes all aspects of system 
    • Loads operating system kernel and starts execution 


Computer-System Operation 

• I/O devices and the CPU can execute concurrently 
• Each device controller is in charge of a particular device type 
• Each device controller has a local buffer 
• CPU moves data from/to main memory to/from local buffers 
• I/O is from the device to local buffer of controller 
• Device controller informs CPU that it has finished its operation by causing an interrupt



Computer System Operation: Interrupts 

Interrupt transfers control to the interrupt service routine 
• Interrupt architecture must save the address of the interrupted instruction 
• A trap (or an exception) is a software-generated interrupt caused either by an error or a user request 
• An operating system is interrupt driven

Operating-System Operations 

Multiprogramming (Batch system) needed for efficiency 
• Single user cannot keep CPU and I/O devices busy at all times 
• Multiprogramming organizes jobs (code and data) so CPU always has one to execute 
• A subset of total jobs in system is kept in memory 
• One job selected and run via job scheduling 
• When it has to wait (for I/O for example), OS switches to another job
• Timesharing (multitasking) is logical extension in which CPU switches jobs so frequently that users can interact with each job while it is running, creating interactive computing 
Response time should be < 1 second 
• Each user has at least one program executing in memory -> process 
• If several jobs ready to run at the same time -> CPU scheduling 
• If processes don’t fit in memory, swapping moves them in and out to run 
Virtual memory allows execution of processes not completely in memory

• Dual-mode operation allows OS to protect itself and other system components 
        * User mode and kernel mode 
        * Mode bit provided by hardware 
        * Provides ability to distinguish when system is running user code or kernel code



• Some instructions designated as privileged, only executable in kernel mode 
System call changes mode to kernel, return from call resets it to user 
• Increasingly CPUs support multi-mode operations 
        * i.e. virtual machine manager (VMM) mode for guest VMs 

A system call is the way that a computer program requests a service from the kernel. This may include hardware-related services (for example, accessing a hard disk drive), creation and execution of new processes, and communication with integral kernel services such as process scheduling. 

Operating System - Services 

• Process Management 
• Memory Management 
• Storage Management 
        * File system management 
        * Storage space management 
• Protection and Security


Process Management 

A process is a program in execution. It is a unit of work within the system. Program is a passive entity, process is an active entity. 
• Process needs resources to accomplish its task 
        * CPU, memory, I/O, files 
        * Initialization data 
• Process termination requires reclaim of any reusable resources 
• Single-threaded process has one program counter specifying location of next instruction to execute 
        * Process executes instructions sequentially, one at a time, until completion
• The operating system is responsible for the following activities in connection with process management: 
        * Creating and deleting both user and system processes 
        * Suspending and resuming processes 
        * Providing mechanisms for process synchronization 
        * Providing mechanisms for process communication 
        * Providing mechanisms for deadlock handling

Memory Management 

• To execute a program all (or part) of the instructions must be in memory 
• All (or part) of the data that is needed by the program must be in memory. 
• Memory management determines what is in memory and when 
    * Optimizing CPU utilization and computer response to users 
• Memory management activities 
    * Keeping track of which parts of memory are currently being used and by whom 
    * Deciding which processes (or parts thereof) and data to move into and out of memory 
    * Allocating and deallocating memory space as needed.

Storage Management 

• OS provides uniform, logical view of information storage 
• Abstracts physical properties to logical storage unit - file 
• Each medium is controlled by a device (i.e., disk drive, tape drive) 
• Varying properties include access speed, capacity, datatransfer rate, access method (sequential or random)
• File-System management 
• Files usually organized into directories 
• Access control on most systems to determine who can access what 
• OS activities include 
        * Creating and deleting files and directories 
        * Primitives to manipulate files and directories 
        * Mapping files onto secondary storage 
        * Backup files onto stable (non-volatile) storage media
• Usually disks used to store data that does not fit in main memory or data that must be kept for a “long” period of time 
• Proper management is of central importance 
• Entire speed of computer operation hinges on disk subsystem and its algorithms 
• OS activities 
        * Free-space management 
        * Storage allocation 
        * Disk scheduling

Protection and Security 

Protection – any mechanism for controlling access of processes or users to resources defined by the OS 
Security – defense of the system against internal and external attacks 
• Systems generally first distinguish among users, to determine who can do what 
• User identities (user IDs, security IDs) include name and associated number, one per user 
• User ID then associated with all files, processes of that user to determine access control 
• Group identifier (group ID) allows set of users to be defined and controls managed, then also associated with each process, file

Computing Environments – Traditional 

• Stand-alone general purpose machines 
• But blurred as most systems interconnect with others (i.e., the Internet) 
Portals provide web access to internal systems 
Network computers (thin clients) are like Web terminals 
• Mobile computers interconnect via wireless networks 
• Networking becoming ubiquitous – even home systems use firewalls to protect home computers from Internet attacks

Computing Environments – Mobile 

• Handheld smartphones, tablets, etc 
• What is the functional difference between them and a “traditional” laptop? 
• Extra feature – more OS features (GPS, gyroscope) 
• Allows new types of apps like augmented reality 
• Use wireless, or cellular data networks for connectivity 
• Leaders are Apple iOS and Google Android

Computing Environments – Virtualization 

• Allows operating systems to run applications within other OSes 
• Vast and growing industry 
Emulation used when source CPU type different from target type (i.e. PowerPC to Intel x86) 
• Generally slowest method 
• When computer language not compiled to native code – Interpretation 
Virtualization – OS natively compiled for CPU, running guest OSes also natively compiled 
        * Consider VMware running WinXP guests, each running applications, all on native WinXP host OS 
        * VMM (virtual machine Manager) provides virtualization services
• Use cases involve laptops and desktops running multiple OSes for exploration or compatibility 
        *Apple laptop running Mac OS X host, Windows as a guest 
        * Developing apps for multiple OSes without having multiple systems 
        * QA testing applications without having multiple systems 
        * Executing and managing computer environments within data centers


Computing Environments – Client-Server 

• Client-Server Computing 
• Dumb terminals supplanted by smart PCs 
• Many systems now servers, responding to requests generated by clients 
• Compute-server system provides an interface to client to request services (i.e., database) 
• File-server system provides interface for clients to store and retrieve files


Computing Environments – Cloud Computing 

• Delivers computing, storage, even apps as a service across a network 
• Logical extension of virtualization because it uses virtualization as the base for it functionality. 
• Amazon EC2 has thousands of servers, millions of virtual machines, petabytes of storage available across the Internet, pay based on usage 
• Many types 
        Public cloud – available via Internet to anyone willing to pay 
        Private cloud – run by a company for the company’s own use 
        Hybrid cloud – includes both public and private cloud components
• Software as a Service (SaaS) – one or more applications available via the Internet (i.e., word processor) 
• Platform as a Service (PaaS) – software stack ready for application use via the Internet (i.e., a database server) 
• Infrastructure as a Service (IaaS) – servers or storage available over Internet (i.e., storage available for backup use)

Open-Source Operating Systems 

• Operating systems made available in source-code format rather than just binary closed-source 
• Counter to the copy protection and Digital Rights Management (DRM) movement 
• Started by Free Software Foundation (FSF), which has “copyleft” GNU Public License (GPL) 
• Examples include GNU/Linux and BSD UNIX (including core of Mac OS X), and many more 
• Can use VMM like VMware Player (Free on Windows), Virtualbox (open source and free on many platforms - http://www.virtualbox.com) 
• Use to run guest operating systems for exploration

Read More Information 
        Click Here    (English)
        Click Here    (Sinhala)


Comments