Monday, December 3, 2012

OPERATING SYSTEM - OPSYS 101

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.

4 comments:

Did you know that you can earn dollars by locking special pages of your blog / site?
All you need to do is to open an account with AdWorkMedia and run their content locking widget.

Easily Increase Your ClickBank Banner Traffic And Commissions

Bannerizer made it easy for you to promote ClickBank products by banners, simply go to Bannerizer, and grab the banner codes for your chosen ClickBank products or use the Universal ClickBank Banner Rotator Tool to promote all of the ClickBank products.

Your Affiliate Money Printing Machine is waiting -

Plus, earning money online using it is as simple as 1 . 2 . 3!

Here is how it all works...

STEP 1. Tell the system which affiliate products you intend to promote
STEP 2. Add some PUSH BUTTON traffic (this ONLY takes 2 minutes)
STEP 3. See how the system explode your list and sell your affiliate products all by itself!

So, do you want to start making money?

Click here to activate the system

Post a Comment