<< Chapter < Page Chapter >> Page >
  • Proportionality Simple, cheap and frequent things are easy. Also, expensive and disastrous things are hard.
  • Forgiving Errors can be recovered from. Reasonable error messages. Example from "rm"; UNIX vs. TOPS.
  • Convenient Not necessary to repeat things, or do awkward procedures to accomplish things. Example copying a file took a batch job.
  • Powerful Has high level facilities.

Facilities

  • The system should supply sufficient for intended use
  • The facilities is complete, don’t leave out any part of a facility.
  • Appropriate, e.g. do not use fixed-width field input from terminal

Cost

  • Want low cost and efficient services.
  • Good algorithms. Make use of space/time tradeoffs, special hardware.
  • Low overhead. Cost of doing nothing should be low. E.g., idle time at a terminal.
  • Low maintenance cost. System should not require constant attention.

Adaptability

  • Tailored to the environment. Support necessary activities. Do not impose unnecessary restrictions. What are the things people do most -- make them easy.
  • Changeable over time. Adapt as needs and resources change. E.g., expanding memory and new devices, or new user population.
  • Extendible-Extensible: Adding new facilities and features - which look like the old ones.

Two main perspectives of an operating system

  • Outside view: whether your system can support for those kinds of program, do they have many facilities: compiler, database, do they easy to use! At this level we focus on what services the system provides.
  • Inside view: related to the internals, code, data structures. This is the system programmer view of an operating system. At this level you understand not only what is provided, but how it is provided.

Five main components of an operating system

Process management

Process is a system abstraction, it illustrates that system has only one job to do . Every program running on a computer, be it background services or applications, is a process. As long as a von Neumann architecture is used to build computers, only one process per CPU can be run at a time. Older microcomputer OSes such as MS-DOS did not attempt to bypass this limit, with the exception of interrupt processing, and only one process could be run under them. Mainframe operating systems have had multitasking capabilities since the early 1960s. Modern operating systems enable concurrent execution of many processes at once via multitasking even with one CPU. Process management is an operating system's way of dealing with running multiple processes. Since most computers contain one processor with one core, multitasking is done by simply switching processes quickly. Depending on the operating system, as more processes run, either each time slice will become smaller or there will be a longer delay before each process is given a chance to run. Process management involves computing and distributing CPU time as well as other resources. Most operating systems allow a process to be assigned a priority which affects its allocation of CPU time. Interactive operating systems also employ some level of feedback in which the task with which the user is working receives higher priority. Interrupt driven processes will normally run at a very high priority. In many systems there is a background process, such as the System Idle Process in Windows, which will run when no other process is waiting for the CPU.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Operating systems. OpenStax CNX. Aug 13, 2009 Download for free at http://cnx.org/content/col10785/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Operating systems' conversation and receive update notifications?

Ask