Heavyweight Tasking That Reduces the Control It Gives Programmers

Total Page:16

File Type:pdf, Size:1020Kb

Heavyweight Tasking That Reduces the Control It Gives Programmers BY PHILIP KOOPMAN JR . o most embedded develop­ ers, multitasking means using a preemptive multi­ tasker and a complex, ex­ Cooperative pensive (in terms of soft­ wareT cost, memory size, and run-time tasking overhead) piece of software. While em­ bedded real-time systems are best writ­ techniques can ten with a multitasking approach, pre­ emptive multitasking is often overkill. often meet an A preemptive multitasker is a very gen­ eralized tool; users may not want to pay embedded the costs that always accompany gener­ alized solutions to their very specific system's problems. A less widely understood approach multitasking to real-time design is cooperative multi­ tasking. Judicious use of cooperative requirements and tasking techniques can often meet an embedded system's multitasking re­ give better quirements, while giving better perfor­ mance and a simpler software environ­ performance. ment than a preemptive multitasker. In my work with stack-based proces­ sors at Harris Semiconductor Inc., I've Tasks can also be used to distinguish investigated the different approaches to different activity classes for a system. multitasking and explored the different For example, routines that only need to tradeoffs among complexity, cost, and be invoked occasionally can be included speed. As a result, I'm convinced that in a task run in response to an external the ease of implementation and effi­ stimulus, such as an interrupt or a timer ciency of cooperative multitasking are pulse. Tasks that always run but are not widely underestimated. time-critical can be assigned lower priorities than other tasks. WHY MULmASKING? On larger systems with multiple pro­ ultitasking is used in embed­ cessors, breaking a software system into ded systems for a variety of tasks provides natural boundaries for M purposes. Keeping separate process migration. Setting parallelism system functions resident in separate granularity at the task level allows each tasks helps reduce the complexity of processor to be assigned to one or more each portion of the system. Separate active tasks, greatly reducing the soft­ tasks also help modularize the work of ware's complexity. In the best of all pos­ writing the system by forcing the cre­ sible worlds, we have one processor per ation of well-defined interfaces between task. Unfortunately, not all systems modules and programmers. have the luxury of multiple processors. APRIL 1990 EMBEDDED SYSTEMS PROGRAMMING 43 Hemyweight Tasking The problem comes when many tasks The preemptive method is usually contend for use of a single processor. what is meant by "multitasking" in con­ This processor must be shared among ventional computing terminology. In a tasks, which can involve significant preemptive multitasker, some prede­ overhead. fined event, such as a timer pulse, peri­ odically halts the executing program PREEMPTIVE TASKING and transfers control to an executive orth has a long tradition of pro­ program or kernel. The kernel saves the viding many support levels for complete state of the processor (all reg­ F multitasking. While coopera­ isters and status bits), including the pro­ tive multitasking is a well-known tech­ gram counter and stack contents. Once nique in Forth circles, the technique the old task state is saved, the kernel needn't be limited to that language. In­ uses some scheme to select another task deed, with the recent appearance of C for execution. The newly selected task compilers for stack processors like the has its state loaded into the processor RTX, the approach becomes particu­ and execution is resumed on the new larly attractive for C programmers as task. well. However, stack processors do alter The advantage to full preemptive some of the design tradeoffs. multitasking is that it is almost trans- Table 1 Pause subroutine code for a lightweight multltasller written for the RTX 2000 RTX 2000 Instruction Comment R> Transfer return address of calling task (task restart address) to data stack. OUI Store that restart address to task area word 0. 1 UO Fetch link value from task area word I. UBRI Store that link value as the new value of the user base register. ouo Fetch the restart address of the new task from the new task area. >R EXIT Transfer the restart address from the data stack to the return stack, then perform a subroutine return (equivalent to a jump to the restart address). felbns I. Each task uses the user base register to point to a 32-word task area used for scratch storage. 2. The pause subroutine code takes six words of memory shared among all tasks. 3. Each invocation of pause code takes I0 clock cycles, including the subroutine call instruc­ tion from the calling task. 44EMBEDDEDSYSTEMSPllOGRAMMIN6 APRIL 1990 parent to the programmer, and it is a powerful and automatic way to ensure that no problems occur during the tran­ sitions between tasks. Unfortunately, the oost for this transparency and power is very high. The machine's entire state must be saved to guarantee a correct restart when the task is resumed. In contrast to RISC and most ClSC processors, however, most stack ma­ chines automatically track the number of active elements on the stack. Tn prac­ tice, the stacks tend to be fairly shallow. However, whatever processor architec­ ture you 're using, the oost for a preemp­ tive multitasker context switch is high. An additional problem with preemp­ tive multitasking is that certain code se­ quences, known as critical regions, must not be interrupted by a task switch. Typically, these sequences deal with ac­ cess to resources shared among tasks or time-critical code. To prevent a preemptive multitasker from interrupting these sequences, a flag must be used to notify the executive that the task is in a critical region. Be­ cause task switches are forbidden with­ in these regions, task-switching latency increases dramatically. Alternatively, semaphores or other synchronization methods may be used to notify other tasks when a data structure is in use in case the task is interrupted. Either way, a considerable run-time overhead and programming effort is involved in pre­ venting a preemption from causing problems. HEAVYWEIGHT COOPERATION n some systems, the number of shared data references and critical I regions executed will have a much greater impact on efficiency than the number of task switches made. Or, you may be dealing with a relatively simple system where it's hard to justify the generality and complexity of a preemp­ tive multitasker. In these cases, it may APR LL L990 EMBEDDED SYSTEMS PROGRAMMING 45 actually be desirable to do away with tive tasking method is that neither syn­ the preemptive tasker and implement chronization variables nor critical-re­ Hearyweight cooperative tasking. gion flags are necessary. Since task In cooperative tasking, the task de­ switching only occurs when the pro­ cides when it is ready to give up control grammer requires it, a task cannot be Tasking of the processor. This decision is typical­ shut down by the kernel at an inoppor­ ly made by each task. The task periodi­ tune moment. This fact can substantial­ cally invokes a routine that queries a ly reduce your run-time overhead and timer to see whether the system desires code complexity. Further, much of the a task switch. This technique is called code in the kernel used for synchroniza­ "pausing." tion and data-structure sharing can be In a simplified but oft-used case, a eliminated, reducing memory costs. In cooperative task switch is performed on every pause. The disadvantage of using the coop­ When it is time for a task switch, the full erative tasking method is that it places tasking, the task processor state is saved in a manner more of a burden on the programmer similar to that used for preemptive task­ for correct operation. Programmers are decides when it is ing. The term "heavyweight" is used be­ responsible for ensuring that periodic cause the complete machine state must checks for task switching are placed in completed and be saved to guarantee correct operation. appropriate sections of the code. If they The term "cooperative" is used because place these checks wisely, the result will ready to give up the task relinquishes control of the sys­ be good performance with small task­ tem by executing pause statements switcbing latencies. Ifprogrammers are control of the sprinkled throughout its code rather not so wise, some task-switching laten­ than relyi ng on an external preemption cies may be undesirably long. processor to other mechanism. The advantage to using the coopera- DEALING WITH LATENCY tasks. he issue of task-switching laten­ cy can be addressed in three T ways. First, we can use coopera­ tive tasking in applications where task­ Figure 1 switcbing latency is not extremely criti­ Characteristics of tasking models. cal or the tasks are quite simple and rely ... • No pauses used, timer-driven on the programmer's skills. Obviously Low High scheduler preempts programs this approach has limited applicability. Preemptive anywhere The second way to reduce this prob­ multitasker • Critical regions and lem is to move all time-critical code to synchronization required for correct operation interrupt-service routines. For example, a task that is activated to read data from an input port before the data is overrun Heavyweight • Pause anywhere • Same context switching cost can be replaced by an interrupt-service cooperative as preemptive multitasker routine that places the data into a first­ multitasker • Cooperati ve model reduces in-first-out buffer and a task that pro­ need for synchronization cesses data from that buffer. This strat­ egy has the effect of desensitizing the System Transparency • Pause at module boundaries, Medium-weight system to task-switching latency. Simi­ efficiency to programmer when stacks are small cooperative • Programmer sched ules pauses lar methods must often be used with muJtitasker for reduced context switching preemptive tasking models as well be­ costs cause of their problems with latency • Cooperative model reduces caused by the critical regions.
Recommended publications
  • What Is an Operating System III 2.1 Compnents II an Operating System
    Page 1 of 6 What is an Operating System III 2.1 Compnents II An operating system (OS) is software that manages computer hardware and software resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function. Memory management Among other things, a multiprogramming operating system kernel must be responsible for managing all system memory which is currently in use by programs. This ensures that a program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory. Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen any more, since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails, it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. With cooperative memory management, it takes only one misbehaved program to crash the system. Memory protection enables the kernel to limit a process' access to the computer's memory. Various methods of memory protection exist, including memory segmentation and paging. All methods require some level of hardware support (such as the 80286 MMU), which doesn't exist in all computers.
    [Show full text]
  • Mac OS X: an Introduction for Support Providers
    Mac OS X: An Introduction for Support Providers Course Information Purpose of Course Mac OS X is the next-generation Macintosh operating system, utilizing a highly robust UNIX core with a brand new simplified user experience. It is the first successful attempt to provide a fully-functional graphical user experience in such an implementation without requiring the user to know or understand UNIX. This course is designed to provide a theoretical foundation for support providers seeking to provide user support for Mac OS X. It assumes the student has performed this role for Mac OS 9, and seeks to ground the student in Mac OS X using Mac OS 9 terms and concepts. Author: Robert Dorsett, manager, AppleCare Product Training & Readiness. Module Length: 2 hours Audience: Phone support, Apple Solutions Experts, Service Providers. Prerequisites: Experience supporting Mac OS 9 Course map: Operating Systems 101 Mac OS 9 and Cooperative Multitasking Mac OS X: Pre-emptive Multitasking and Protected Memory. Mac OS X: Symmetric Multiprocessing Components of Mac OS X The Layered Approach Darwin Core Services Graphics Services Application Environments Aqua Useful Mac OS X Jargon Bundles Frameworks Umbrella Frameworks Mac OS X Installation Initialization Options Installation Options Version 1.0 Copyright © 2001 by Apple Computer, Inc. All Rights Reserved. 1 Startup Keys Mac OS X Setup Assistant Mac OS 9 and Classic Standard Directory Names Quick Answers: Where do my __________ go? More Directory Names A Word on Paths Security UNIX and security Multiple user implementation Root Old Stuff in New Terms INITs in Mac OS X Fonts FKEYs Printing from Mac OS X Disk First Aid and Drive Setup Startup Items Mac OS 9 Control Panels and Functionality mapped to Mac OS X New Stuff to Check Out Review Questions Review Answers Further Reading Change history: 3/19/01: Removed comment about UFS volumes not being selectable by Startup Disk.
    [Show full text]
  • CS 151: Introduction to Computers
    Information Technology: Introduction to Computers Handout One Computer Hardware 1. Components a. System board, Main board, Motherboard b. Central Processing Unit (CPU) c. RAM (Random Access Memory) SDRAM. DDR-RAM, RAMBUS d. Expansion cards i. ISA - Industry Standard Architecture ii. PCI - Peripheral Component Interconnect iii. PCMCIA - Personal Computer Memory Card International Association iv. AGP – Accelerated Graphics Port e. Sound f. Network Interface Card (NIC) g. Modem h. Graphics Card (AGP – accelerated graphics port) i. Disk drives (A:\ floppy diskette; B:\ obsolete 5.25” floppy diskette; C:\Internal Hard Disk; D:\CD-ROM, CD-R/RW, DVD-ROM/R/RW (Compact Disk-Read Only Memory) 2. Peripherals a. Monitor b. Printer c. Keyboard d. Mouse e. Joystick f. Scanner g. Web cam Operating system – a collection of files and small programs that enables input and output. The operating system transforms the computer into a productive entity for human use. BIOS (Basic Input Output System) date, time, language, DOS – Disk Operating System Windows (Dual, parallel development for home and industry) Windows 3.1 Windows 3.11 (Windows for Workgroups) Windows 95 Windows N. T. (Network Technology) Windows 98 Windows N. T. 4.0 Windows Me Windows 2000 Windows XP Home Windows XP Professional The Evolution of Windows Early 80's IBM introduced the Personal PC using the Intel 8088 processor and Microsoft's Disk Operating System (DOS). This was a scaled down computer aimed at business which allowed a single user to execute a single program. Many changes have been introduced over the last 20 years to bring us to where we are now.
    [Show full text]
  • Real-Time Operating Systems with Example PICOS18
    Real-Time Operating Systems With Example PICOS18 Sebastian Fischmeister 1 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: o Execute user programs and make solving user problems easier. o Make the computer system convenient to use . Use the computer hardware in an efficient manner CSE480/CIS700 S. Fischmeister 2 1 Computer System Components 1. Hardware – provides basic computing resources (CPU, memory, I/O devices) 2. Operating system – controls and coordinates the use of the hardware among the various application programs for the various users 3. Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs) 4. Users (people, machines, other computers) CSE480/CIS700 S. Fischmeister 3 Abstract View of System Components CSE480/CIS700 S. Fischmeister 4 2 What is an RTOS? . Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems . Well-defined fixed-time constraints CSE480/CIS700 S. Fischmeister 5 More Precisely? . The system allows access to sensitive resources with defined response times. o Maximum response times are good for hard real-time o Average response times are ok for soft real-time . Any system that provides the above can be classified as a real-time system o 10us for a context switch, ok? o 10s for a context switch, ok? CSE480/CIS700 S. Fischmeister 6 3 Taxonomy of RTOSs .
    [Show full text]
  • CS 450: Operating Systems Michael Lee <[email protected]>
    The Process CS 450: Operating Systems Michael Lee <[email protected]> Agenda - The Process: what is it and what’s in it? - Forms of Multitasking - Tracking processes in the OS - Context switches and Scheduling - Process API a process is a program in execution - its behavior is largely defined by the program being executed - but a process is much more than just a program! Multitasking - Modern general-purpose OSes typically run dozens to hundreds of processes simultaneously - May collectively exceed capacity of hardware - Recall: virtualization allows each process to ignore physical hardware limitations and let OS take care of details CPU/Memory Virtualization - Time-slicing of CPU(s) is performed to simulate concurrency - Memory is partitioned and shared amongst processes - But per-process view is of a uniform address space - Lazy/On-demand loading of processes lowers total burden vs. “Batch” processing - Without multitasking, each program is run from start to finish without interruption from other processes - Including any I/O operations (which may be lengthy!) - Ensures minimal overhead (but at what cost?) - Is virtualization still necessary? Pros/Cons of Multitasking - Pro: may improve resource utilization if we can run some processes while others are blocking - Pro: makes process interaction possible - Con: virtualization introduces overhead (examples?) - Con: possibly reduced overall throughput Forms of Multitasking - Cooperative multitasking: processes voluntarily cede control - Preemptive multitasking: OS polices transitions (how?) - Real-time systems: hard, fixed time constraints (late is wrong!) What’s in a process? - Program (“text”) and data - Static/Stack/Heap memory contents - Registers (e.g., PC, SP, FP) - Open files and devices (e.g., network) - What else? Data vs.
    [Show full text]
  • Scheduling Techniques for Reducing Processor Energy Use in Macos
    Scheduling Techniques for Reducing Processor Energy Use in MacOS Jacob R. Lorch and Alan Jay Smith Computer Science Division, EECS Department, UC Berkeley Berkeley, CA 94720-1776 Abstract a number of engineering users. We found that, depending on the machine and user, up to 18±34% of total power was at- The CPU is one of the major power consumers in a tributable to components whose power consumption could be portable computer, and considerable power can be saved by reduced by power management of the processor, i.e. the CPU turning off the CPU when it is not doing useful work. In Ap- and logic that could be turned off when the CPU was inactive. ple's MacOS, however, idle time is often converted to busy This high percentage, combined with our intuition that soft- waiting, and generally it is very hard to tell when no use- ware power management could be signi®cantly improved for ful computation is occurring. In this paper, we suggest sev- the processor, led us to conclude that the most important tar- eral heuristic techniques for identifying this condition, and get for further research in software power management was for temporarily putting the CPU in a low-power state. These the processor. techniques include turning off the processor when all pro- Many modern microprocessors have low-power states, in cesses are blocked, turning off the processor when processes which they consume little or no power. To take advantage of appear to be busy waiting, and extending real time process such low-power states, the operating system needs to direct sleep periods.
    [Show full text]
  • Types of Operating System 3
    Types of Operating System 3. Batch Processing System The OS in the early computers was fairly simple. Its major task was to transfer control automatically from one job to the next. The OS was always resident in memory. To speed up processing, operators batched together jobs with similar requirement/needs and ran them through the computer as a group. Thus, the programmers would leave their programs with the operator. The operator would sort programs into batches with similar requirements and, as the computer became available, would run each batch. The output from each job would be sent back to the appropriate programmer. Memory layout of Batch System Operating System User Program Area Batch Processing Operating System JOBS Batch JOBS JOBS JOBS JOBS Monitor OPERATING SYSTEM HARDWARE Advantages: ➢ Batch processing system is particularly useful for operations that require the computer or a peripheral device for an extended period of time with very little user interaction. ➢ Increased performance as it was possible for job to start as soon as previous job is finished without any manual intervention. ➢ Priorities can be set for different batches. Disadvantages: ➢ No interaction is possible with the user while the program is being executed. ➢ In this execution environment , the CPU is often idle, because the speeds of the mechanical I/O devices are intrinsically slower than are those of electronic devices. 4. Multiprogramming System The most important aspect of job scheduling is the ability to multi-program. Multiprogramming increases CPU utilization by organizing jobs so that CPU always has one to execute. The idea is as follows: The operating system keeps several jobs in memory simultaneously.
    [Show full text]
  • I.T.S.O. Powerpc an Inside View
    SG24-4299-00 PowerPC An Inside View IBM SG24-4299-00 PowerPC An Inside View Take Note! Before using this information and the product it supports, be sure to read the general information under “Special Notices” on page xiii. First Edition (September 1995) This edition applies to the IBM PC PowerPC hardware and software products currently announced at the date of publication. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address given below. An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been removed, comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. JLPC Building 014 Internal Zip 5220 1000 NW 51st Street Boca Raton, Florida 33431-1328 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1995. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Abstract This document provides technical details on the PowerPC technology. It focuses on the features and advantages of the PowerPC Architecture and includes an historical overview of the development of the reduced instruction set computer (RISC) technology. It also describes in detail the IBM Power Series product family based on PowerPC technology, including IBM Personal Computer Power Series 830 and 850 and IBM ThinkPad Power Series 820 and 850.
    [Show full text]
  • The Operating System the Operating System (OS) Is the He Low-Level Software Which Handles the Interface to Peripheral Hardware
    The Operating System The Operating System (OS) is the he low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running. Main functions: - 1. Provides instructions to display the on screen elements with which you interact. Collectively, these elements are known as the user interface. 2. Loads programs into the computers memory so that you can use them. 3. Co-ordinates how programs work with the CPU, RAM, keyboard, mouse, printer and other hardware as well as with software. 4. Manages the way information is stored on and retrieved from disks. The User Interface With an OS you see and interact with a set of items on the screen, the user interface. Graphical User Interface - Most current OS provide a graphical user interface (GUI). Apple computer introduced the first GUI with its Macintosh computer in 1984. GUIs are so called because you use a mouse (or other pointing device) to point at graphical objects on the screen. The Desktop - The coloured area that is seen on the screen. The pictures stand for items you might see on a real desktop such as “my computer”. Icons - Icons are pictures that represent the parts of the computer you work with. Software designers try to design the icons so that they look like what they represent. You interact with your computers resources by activating the icon that represent the resource. This is done by using a pointing device. The Taskbar and the Start Button (windows only) - When you start a program a button appears for it on the taskbar – an area at the bottom of the screen whose purpose is to display the buttons for the programs you are running.
    [Show full text]
  • Mac OS 8 Revealed
    •••••••••••••••••••••••••••••••••••••••••••• Mac OS 8 Revealed Tony Francis Addison-Wesley Developers Press Reading, Massachusetts • Menlo Park, California • New York Don Mills, Ontario • Harlow, England • Amsterdam Bonn • Sydney • Singapore • Tokyo • Madrid • San Juan Seoul • Milan • Mexico City • Taipei Apple, AppleScript, AppleTalk, Color LaserWriter, ColorSync, FireWire, LocalTalk, Macintosh, Mac, MacTCP, OpenDoc, Performa, PowerBook, PowerTalk, QuickTime, TrueType, and World- Script are trademarks of Apple Computer, Inc., registered in the United States and other countries. Apple Press, the Apple Press Signature, AOCE, Balloon Help, Cyberdog, Finder, Power Mac, and QuickDraw are trademarks of Apple Computer, Inc. Adobe™, Acrobat™, and PostScript™ are trademarks of Adobe Systems Incorporated or its sub- sidiaries and may be registered in certain jurisdictions. AIX® is a registered trademark of IBM Corp. and is being used under license. NuBus™ is a trademark of Texas Instruments. PowerPC™ is a trademark of International Business Machines Corporation, used under license therefrom. SOM, SOMobjects, and System Object Model are licensed trademarks of IBM Corporation. UNIX® is a registered trademark of Novell, Inc. in the United States and other countries, licensed exclusively through X/Open Company, Ltd. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark claim, the designations have been printed in initial capital letters or all capital letters. The author and publisher have taken care in the preparation of this book, but make no express or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
    [Show full text]
  • Hardware Multitasking Within a Softcore CPU
    Hardware multitasking within a softcore CPU Ulrich Homann (FH Wedel University of Applied Sciences), Andrew Read June 2015 [email protected], [email protected] Abstract We have developed and implemented hardware multitasking support for a softcore CPU. The N.I.G.E. Machine's softcore CPU is an FPGA-based 32 bit stack machine optimized for running the FORTH programming language. The virtualization model that we have developed provides at least 32 independent CPU virtual machines within a single hardware instance. A full task switch takes place in only two clock cycles, the same duration as a branch or jump instruction. We have use the facility to provide a multitasking platform within the N.I.G.E. Machine's FORTH environment. Both cooperative multitasking, by means of the PAUSE instruction, and pre-emptive multitasking are supported. 1 Introduction The N.I.G.E. Machine is a complete microcomputer system implemented on an FPGA development board [1]. It comprises a 32 bit softcore processor optimized for the FORTH programming language, a set of peripheral hardware modules, and FORTH system software (gure 1). The N.I.G.E. Machine was presented at EuroFORTH in 2012, 2013 and 2014 [2, 3, 4]. The N.I.G.E. Machine follows in the footsteps of a number of signicant FORTH processors [6, 7, 8, 9, 10, 11], most especially the J-1 [6]. The N.I.G.E. Machine design les are are freely available with an open source license [5]. Most embedded systems, including those that control scientic instruments (such as the Open Network Forth system that controls the Munich particle accelerator [25]), require some level of multitasking.
    [Show full text]
  • Fundamental 2
    Fundamental 2 Lec#03 Shugofa Hassani Session Objective • To understand different types of operating system • To distinguish between types of operating system Types of operating systems • Single- and multi-user operating system • Single tasking / Batch operating system • Multi programing operating system • Multi-tasking operating system / Time-sharing operating system • Embedded operating system • Distributed operating system • Network operating System • Real Time operating System • Mobile operating System Single- and multi-user • Single user operating system allows one user to interact with system like desktop operating system , in reverse the multi user operating system system allows to several users to interact with the system in the same time like server operating system . Single- Tasking / Batch Operating system • A single-tasking system allows only one program in one time such as batch operating system . • In a batch operating system user do not interacted with the computer directly , each user prepared his job on offline device like punch card and submit to computer operator . • Job with similar needs batch together and run as group , the required time for executing of a batch do not considered. • The second batch executed when the first one completed , CPU goes to idle until completing the first batch . Multitasking / Time sharing operating system. • A multi-tasking (Time sharing) operating system can operate more than one program such as Windows operating system . Multi-tasking may be divided into two types. 1. Preemptive multitasking 2. Cooperative multitasking Con.. Preemptive multitasking : • Preemptive multitasking use schedule for each process to decide how long to allocate to any one task before giving another task a turn to use the operating system.
    [Show full text]