Monday, March 9, 2015

Operating System and Hardware Resources

Operating System
Operating System is a layer of software that provides two important services to a computer system:

Abstraction:

  • Hides details of different hardware configurations
  • Applications do not need to be tailored for each possible device that might be present on a system
  • Allows hardware devices manufactured by different manufacturers to have same interface: These hardware devices all require different low-level instructions to operate and have different capabilities

Arbitration:

  • Manages access to shared hardware resources
  • Enables multiple applications to share the same hardware simultaneously
  • Allows hardware to be shared by multiple applications simultaneously
    • Divides CPU core time among different programs
    • Manages access to RAM, I/O, and disk
    • (Ideally) Enforces system and security policies to isolate applications from each other
Examples: 
Supporting both Intel and AMD processors: abstraction;
Switching between applications: arbitration;
Separating memory allocated to different applications: arbitration;
Enabling video conferencing software to use different camera devices: abstraction (the video conferencing software only needs to know the camera interface the OS provides);
Accessing two different hard disks: abstraction;
Sending and receiving messages over a network: both abstraction and arbitration (abstracting the detail of each particular network card to be able send and receive the messages, on the other hand, we are sharing that network card among all the different applications on the system)

Layers of System
Source: https://www.youtube.com/watch?v=MzVGL44eq9w



Kernel (Core of the OS): minimum piece of the software that it's needed to share the hardware between different applications.
Userspace: whatever lives outside the kernel, application code or sometimes part of the OS that is not strictly necessary to share the hardware or abstract its details (Libraries and Utilities).

Communicating with hardware
OS implements a common mechanism for allowing applications to access hardware (abstraction).
Applications can make requests from the OS to go and access the hardware and other features via system calls down to the OS (entering the OS/kernel from the top half).
OS can alert applications that hardware is changed (e.g., user has pressed a key on the keyboard), entering the kernel from the bottom half.
OS can also alert applications via signals that OS may terminate the applications

OS
Microsoft Windows(non-Unix)
Unix systems: Linux, Mac OS X, BSD, Solaris/OpenSolaris, Commercial UNIX

Hardware Resources:

Central Processing Unit(CPU)

  • Executes program instructions
  • Multiple CPU cores execute instructions in parallel
Integrated Circuit that executes instructions
Has one or more execution cores (most modern CPU has at least two cores)
CPU registers are used for direct computations/operations

Memory
Hierarchy of different memory speeds: provides a place to store instructions and data used for computation
  • Fastest memory:
    •  CPU Registers 
    • Cache attached to CPU itself
      • used to store program instructions and data that will be used immediately
      • divided into levels of different speed
      • volatile: contents lost whenever the power is disconnected
      • expensive
  • Random Access Memory (RAM) - slower
    • store programs and data while the program is in a state of execution
    • it is several orders of magnitude faster than hard disks or even SSDs
      • programs are loaded into RAM by the loader before they start executing
      • Most programs buffer data in RAM for speed
    • Volatile: contents lost when power is disconnected
    • More expensive per unit storage than disk/SSD
  • Persistent Memory(disk) - slowest
    • Non-volatile storage for data to be saved whenever the system is powered off
    • Least expensive per unit of capacity
    • Slowest form of storage in the sytem
      • not fast enough to execute programs directly, largely because the CPU will constantly be waiting on the drive to give the next instruction, and that will slow down CPU
    • Hard Disk Drives(HDD)
      • mechanical devices using magnetic storage: magnetic medium on top (glass or metal disk) called platter;
      • Multiple platters spin at high speed, with heads moving between "tracks" on the platters
        • seek time: time required to move heads back and forth
        • rotational delay: time required for platter to rotate around to location of desired data
      • Relatively inexpensive per unit of storage space
      • Mechanical: guaranteed to fail eventually
Source: https://www.youtube.com/watch?v=2Z0yIguC5eU
    • Solid State Drives: 
      • No moving parts
        • no seek time
        • no rotational delay
        • faster burst transfers
      • Much higher performance than hard disks
      • Significantly more expensive than hard disks of similar capacities
      • Well eventually fail: each block of an SSD can be written a finite number of times before wearing out
        • wear-leveling: the drive itself extends its own lifetime by reallocating blocks dynamically so that each block is written in average number of time instead of at a large time 



Input/Output (I/O) Devices
Keyboard, Mouse, Network Interface Card(NIC), Screen, etc. 

Power and System Management
Power Supply
Internal Cooling(managed fans, etc. )

System form factors: a set of specifications of standard sizes for equipment, allows computer components developed by different people to be interchangeable with one another. 
Standard form factors:
  • ATX(Typical workstation systems)
  • uATX, mini-ITX(Smaller systems)
  • Rackmount(Typical servers in a data center)


Source: https://www.youtube.com/watch?v=2Z0yIguC5eU

1 comment:

  1. The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. IEEE final year projects on machine learning In case you will succeed, you have to begin building machine learning projects in the near future.

    Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.


    Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

    ReplyDelete