Monday, December 3, 2012

What is Software?
  • It is a programs used to direct the operation of a computer, as well as documentation giving instructions on how to use them. 
  • It is a set of instructions or programs for controlling the computer.
Different Types of Software:

System Software
 It is a set of programs that controls the operations of the computer and its devices.

Application Software
It is a set of programs that performs specific tasks for users.

3 Types of Programs:

User/Application Programs

  • Programs used by the users to perform a specific task.

System Programs

  • An interface between user and computer.

Driver Programs

  • Communicate with I/O devices with computer.

Architecture of Computer System

Computer system can be divided into four components:

  1. Users
  2. Application Program
  3. Operating System
  4. Hardware


What is an Operating System?


  • It is a set of one or more programs which provides a set of services that interface applications to computer hardware and which allocates and manages resources shared among multiple processes.


2 Related Goals OF OS:

Convenience

  • Operating System mainly developed to make the use of computer easier. 

Efficiency

  • Operating System should ensure that the computer resources are managed properly. 

OS Functions and Purposes:


  1. Resource Manager
  2. Service Provider
  3. Virtual Machine

Resource Manager

  • Allocates scarce resources
  • Protects entities from interfering with each other
  • Protects itself and the overall system from both malicious and accidental damage
  • Programs run at the pleasure of the OS

Service Provider

  • Provides common functionality, simplifying applications
  • Provides standard interfaces, making applications more consistent

Virtual Machine

  • Defines a number of characteristics not found on the hardware
  • Presents a cleaner and easier “machine” for applications to run on
  • Hides the boundary between OS and hardware, allowing flexibility in hardware design while still running the same programs

Areas of Operating System Responsibility:


  1. Processes Management
  2. Memory Management
  3. I/O Devices Management
  4. File Systems Management
  5. Security
  6. Networking
  7. User Interface

Process Management

  • Manages CPU in terms of running programs, called processes
  • Schedules processes, picking the next one to get the CPU
  • Switches between processes, called context switching

Process Related Services

  • Creating processes
  • Terminating processes
  • Changing process parameters (e.g. priority)?
  • Providing inter process communication
  • Providing process synchronization

Memory Management

  • Assigns areas of memory belonging to processes to areas of physical memory
  • Manages requests that exceed available physical memory
  • Controls sharing of memory

Memory Related Services

  • Direct allocation requests
  • Direct freeing of memory
  • Serving memory needs
  • Managing sharing of areas of memory

I/O Device Management

  • Provides common device interface tasks
  • Manages exclusive access
  • Hides device details

I/O Device Related Services

  • Establish access to a device
  • Release a device
  • Read from a device
  • Write to a device
  • Grant exclusive access to a device
  • Provide special device operations

File System Management

  • Provides translation from names to resources
  • Manages persistent storage of data
  • Presents a device-independent interface
  • Protects resources from unauthorized access

File System Related Services

  • Open a file
  • Close a file
  • Read from a file
  • Write to a file
  • Seek within a file
  • Query and modify file parameters

Security

  • Part of other management responsibilities
  • Authenticates the identity of a requester
  • Authorizes access according to a security policy

Security Related Services

  • Setting Security Policies
  • Querying Security Polices
  • Encrypting and Decrypting Message (especially carried over the network)

Networking

  • Implements protocol stacks
  • Provides services for:
    • Establishing connections to remote systems
    • Listening for connections from remote systems
    • Exchanging data with remote systems

Networking Related Services

  • Establishing a connection to a remote service
  • Listening for connections from remote client
  • Sending messages to a remote system
  • Receiving messages from a remote system
  • Closing a connection to a remote system

User Interfaces

  • OS provides a design that have integrated the user interface which the user can deal with.

Techniques of Organizing Operating Systems:

  • Different Operating System Structure:
    • Monolithic Designs
    • Layered Designs
    • Microkernel Designs
    • Virtual Machines Designs

Monolithic Designs

  • Kernel structured as a single program
  • Usual design techniques
  • Often criticized

Layered Designs

  • Dependency on only lower layers
  • Tricky to structure
  • Often requires splitting subsystems into multiple layers

Microkernels Design

  • Move much of the traditional kernel functionality into separate programs
    • Reduce the size of the kernel
    • Components communicate with messages passed through the microkernel

Virtual Machine Designs

  • Virtualize the hardware
    • Create the illusion of multiple machines
    • Each guest believes it has the hardware to itself
    • Allows different OSs to run at the same time

History of the Operating System

  • Pre-Batch Systems
  • Simple Batch Systems
  • Multi-Programmed Batch Systems
  • Time-Sharing Systems
  • Personal Computer Systems
  • Parallel Systems
  • Distributed Systems
  • Real-Time Systems

Pre-Batch Systems

  • No OS on earliest machines
    • Collections of useful routines:
    • First code reuse
      • Foreshadowed the service provider aspect of operating systems
  • Machines scheduled with sign-up sheets
  • Issue:
    • Too much spent time loading and reloading compilers.
  • Solution:
    • Batch all programs that use the same compiler.

Simple Batch Systems

  • Development of high-speed magnetic tape.
  • Bundles together all programs/jobs that use the same compiler.
  • Issue:
    • What if programs/jobs requires additional input?
  • Solution:
    • Spooling (Simultaneous Peripheral Operation On-Line)

Multi-Programmed Batch Systems

  • Kept OS runs jobs one at a time based on a scheduling scheme.
  • CPU is kept busy, less idle time waiting for I/O.
  • OS rapidly switch among running programs.
  • Issue:
    • User cannot use the computer when he wants to.
  • Solution:
    • Allow multiple users to connect to the computer over modems from dumb terminals at home.

Time-Sharing Systems (Multitasking System)

  • Multiple users all using a single computer at the same time.
  • OS provides process synchronization and communication.
  • OS provides deadlock avoidance.
  • OS provides a file system.

Personal Computer Systems

  • Computers finally become cheap enough for individual users to own.
  • GOAL for OS is more of user convenience and efficiency.

Parallel Systems (Multiprocessor Systems)

  • Computers having more than one processor.
  • Also called as Tightly-Coupled system.
  • 2 Techniques:
    • Symmetric Multiprocessing
      • Where each processors share the same memory and I/O; each processor works independently.
    • Asymmetric Multiprocessing
      • Where each processor is assigned a specific task; master-slave processors.
  • Advantages:
    • Increased throughput
    • Economy Scale
    • Increased Reliability

Distributed Systems

  • After allowing multiple users and programs, multiple machines comes next
  • Manage multiple computing systems as a single pool of computing resources
  • Share file systems
  • Support multiple CPUs cooperating on a single task
  • Also called as Loosely-Coupled Systems
  • Advantage:
    • Resource Sharing
    • Computation Speedup (Load-Sharing)
    • Reliability
    • Communication
    • Scalability

Real-Time Systems

  • OS must provides an output within a fixed timeframe.
  • 2 Types:
    • Hard Real-Time System
      • System must perform in time or system will fail.
    • Soft Real-Time System
      • If system is unable to perform in time, performance degradation only.
Categories:

1 comment:

  1. Did you know that you can earn dollars by locking premium areas of your blog / site?
    To start you need to join AdWorkMedia and run their Content Locking widget.

    ReplyDelete

Subscribe to RSS Feed Follow me on Twitter!