Chapter 4 Software and OS 1 Outline • Definition • Categories of Software – System Software – Application Software • Operating systems 2 Objectives • • • • • • Define software. List the functions of system software. List the commonly used application software. Describe operating system. Explain the evolution of operating systems. Explain how the operating system serves as the memory manger, process manager, device manager, and file manager. • Recognize different operating systems 3 part 1 DEFINITION 4 Big picture 5 What is software? • A computer has no intelligence of its own and must be supplied with instructions that tell it what to do and how and when to do it. These instructions are called Software. • The U.S Copyright Act of 1980 defines software as “a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result.” 6 What is software? • We define software as the instructions and associated data, stored in electronic format, that direct the computer to accomplish a task. • “Software” is a plural noun, so there is no such thing as “softwares” or “one software”. People use “software package” to describe a particular example of software. 7 programs, data and software • A computer program is a set of detailed, step-bystep instructions that tells a computer how to solve a problem or carry out a task. • Software is made up of a group of related computer programs, if those programs work together to carry out a task. • Software also can include data, but data alone is not software. 8 part 2 CATEGORIES OF SOFTWARE 9 Software categories • Computer software can be classified into 2 categories: – System Software – Application Software • System software is the general manager that helps the computer carry out its basic operating tasks. • Application software is your servant that helps the human user carry out a specific task. 10 Software categories 11 system software • System software deals with the physical complexities of computer hardware. It consists of four kinds of programs: operating systems, utilities, device drivers, and language translators. • System software tells the computer – how to interpret data and instructions; – how to communicate with peripheral equipment like printer, keyboard and disk drives; – how to manage files; – how to use the hardware in general; – …… 12 system software • Operating systems are programs that operate your microcomputer. They coordinate computer resources, provide an interface between users and the computer, and run applications. • It resides in RAM. • It includes BIOS, which manages the essential peripherals. 13 system software • Utilities, also known as service programs, perform specific tasks related to managing computer resources or files. • They are used to support, enhance, or expand existing programs in a computer system. • They include programs to help users identify hardware problems, locate lost files (data recovery), and backup data. 14 system software • Device drivers are specialized programs designed to allow particular input or output devices to communicate with the rest of the computer system. • Language translators convert the programming instructions written by programmers into a language that computers understand and process. 15 application software • Application software (the user’s tools) is software that performs tasks to directly benefit or assist the user. • Some types of application software: – – – – – – Word processing Spreadsheet applications Presentation graphics Database management Web browsing Games 16 Computer System Education reference software User interface Other system software components Operating System Hardware Productivity software specialty software Entertainment software Home/personal software Misc. software 17 part 3 OPERATING SYSTEMS 18 Functions of OS • Every computer has an operating system, and every operating system performs three basic functions: – managing resources – providing a user interface – running applications. 19 Functions of OS • Resources: These programs coordinate all the computer's resources including keyboard, mouse, printer, monitor, storage devices, and memory. 20 Functions of OS • User interface: Users interact with application programs and computer hardware through a user interface. Almost all operating systems today provide a windows-like graphical user interface (GUI) in which graphic objects called icons are used to represent commonly used features. . 21 Functions of OS • Applications: These programs load and run applications such as word processors and spreadsheets. Most operating systems support multitasking, or the ability to run more than one application at a time. 22 Two kinds of user interfaces • The user interface is the part of the operating system with which we are most familiar. This is the part of the operating system we interact with when using the computer. The two most common types of user interfaces are command-line interfaces and graphical interfaces. 23 two kinds of user interfaces • Command-line Interfaces – All early computers used command-line interfaces. With this type of interface, you must type the exact command you wish to execute. One of the most widely used command-line interfaces for microcomputer is DOS. This type of interface is not considered user friendly. You must memorize the commands and type them without any spelling errors. Otherwise, they do not work. 24 Two kinds of user interfaces • Graphical User Interfaces – When the user turns on the computer and starts the operating system, a symbolic desktop is displayed. On this desktop are various objects, or icons. These graphical symbols represent files, disks, programs, and other objects. GUIs permit the user to manipulate these on-screen icons. Most people use a pointing device such as a mouse to click on the icons and execute the commands. 25 Common operating systems • DOS • Command-driven DOS—short for Disk Operating System—was very popular in the 1980s and early 1990s and runs primarily on PCs (IBM and IBMcompatible). IBM's version of DOS is called PCDOS and Microsoft's version of DOS is called MS-DOS. Both were developed by Microsoft, and they are essentially the same. 26 Common operating systems • Windows • By far the most popular microcomputer operating system is Microsoft's Windows with over 90 percent of the market. Windows is designed to run with Intel and Intel-compatible microprocessors such as the Pentium III, and IV. It comes in a variety of different versions including Windows 98, Windows 2000 , Windows XP and Windows Vista. 27 Common operating systems • OS/2 • OS/2 is IBM's multitasking graphical user interface operating system designed to work with 32-bit microprocessors. However, due to some management and marketing disasters, IBM failed to increase its market share against Windows. Nowadays, only some businesses use OS/2. 28 Common operating systems • UNIX • UNIX is the oldest operating system still used today. UNIX is a multiuser, multitasking operating system with built-in networking capabilities. Because it can run with relatively simple modifications on most types of computers—from micros to minis to mainframes—UNIX is called a portable operating system. 29 Common operating systems • Linux • Linux is a version of UNIX. Linus Torvalds developed Linux in 1990 while he was a computer science student at Helsinki University in Finland. He developed it as freeware, offering UNIX's power without the hefty price. Free Linux versions can be downloaded from hundreds of Internet sites. 30 Common operating systems • Mac OS • The Mac OS is designed to run on Macintosh computers. While its market share is much less than that of Windows, it is a very powerful and easy-to-use operating system. Mac computers make up about 4% of the personal computer market. 31 Common operating systems • NetWare • Novell's NetWare is a widely used network operating system designed for client-server networks. NetWare has a server portion that resides on the network server and a client portion that resides on each client computer connected to the network. 32 Possible future trend • Nothing stands still, everything is changing. 33 Evolution of OS • Batch systems – Each program to be executed is called a job. • Time-sharing systems – – – – Multiprogramming Time sharing Scheduling Process • Personal systems • Parallel systems • Distributed systems 34 Components of an OS 35 Memory manager • Memory allocation must be managed to prevent the “running out of memory” syndrome. • Monoprogramming: one single program is in memory for execution. 36 Memory manager • In multiprogramming, more than one program is in memory at the same time, and they are executed concurrently. • The CPU switches between programs. 37 Memory manager 38 Partitioning • In this scheme, memory is divided into variable length sections. • Each section or partition holds one program. • The CPU switches between programs. 39 Paging • In paging, memory is divided into equally sized sections called frames. • The program is divided into equally sized sections called pages. • The size of a page and a frame is usually the same and equal to the size of the block used by the system to retrieve information from a storage device. 40 Demand paging • In demand paging, the program is divided into pages, but the page can be loaded into memory one by one, executed, and replaced by another page. • In other words, memory can hold one page from multiple programs at the same time. 41 Demand segmentation • In demand segmentation, the program is divided into segments that match the programmer’s view. • These are loaded into memory, executed, and replaced by another module from the same or a different program. 42 Demand paging and segmentation • A segment may be too large to fit any available free space in memory. • Memory can be divided into frames, and a module can be divided into pages. • The page of a module can then be loaded into memory one by one and executed. 43 Virtual memory • Virtual memory, which implies demand paging, demand segmentation, or both, is used in almost all operating systems. 44 Process manager • A program is a nonactive set of instructions written by a programmer and stored on disk (or tape). It may or may not become a job. • A program becomes a job from the moment it is selected for execution until it has finished running and becomes a program again. During this duration, a job may or may not be executed. • A process is a program in execution. It is a program that has started but has not finished. A process is a job that is residing in memory. 45 State diagrams • Refer to page 130 for explanation. 46 Schedulers • To move a job or process from one state to another, the process manager uses two schedulers: – The job schedulers(page131) – The process schedulers(page131) 47 Queuing • There are many jobs and many processes completing with each other for computer resources. • To handle multiple processes and jobs, the process manager uses queues (waiting lists). • Associated with each job or process is a job control block or process control block that stores information about the job or process. 48 Queuing • The process manager can have different policies for selecting the next job or process from a queue: – – – – First in, first out (FIFO) Shortest length first The one with the highest priority etc. 49 Process synchronization • The whole idea behind process management is to synchronize different processes with different resources. • Whenever resources can be used by more than one user (processes in this case), you can have two situations: deadlock and starvation. 50 Deadlock 51 Deadlock • Deadlock occurs when the operating system does not put resources restrictions on processes. • 4 necessary conditions for deadlock: – Mutual exclusion (only one process can hold a resource) – Resource holding ( a process holds a resource even though it cannot use it until other resources are available) – No preemption (the OS cannot temporarily reallocate a resource) – Circular waiting (all processes and resources involved form a loop) 52 Starvation 53 Starvation • Starvation is the opposite of deadlock. • It can happen when the OS puts too many resource restrictions on a process. • For example, imagine an OS that specifies possession of all the required resources before a process can be run. 54 Device manager • The device manager, or I/O manager, is responsible for access to I/O devices. – The device manager monitors every I/O device constantly to assure that the device is functioning properly. The manager also needs to know when a device has finished serving one process and is ready to serve the next process in the queue. – The manager maintains a queue for each I/O device or one or more queues for similar I/O devices. – The manager controls the different policies for accessing I/O devices. 55 File manager • A file manager is responsible for access files. – Controls accesses to files. – Supervises the creation, deletion, and modification of files. – Control the names of files. – Supervises the storage of files, how they are stored, where they are stored, etc. – Is responsible for archiving and backups. 56 Objectives • • • • • • Define software. List the functions of system software. List the commonly used application software. Describe operating system. Explain the evolution of operating systems. Explain how the operating system serves as the memory manger, process manager, device manager, and file manager. • Recognize different operating systems 57 That’s all for this chapter! 58