Computer-System-Software_hhhGroup-3.pptx

JuanitoBautista6 61 views 79 slides Sep 21, 2024
Slide 1
Slide 1 of 79
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79

About This Presentation

Computer system software refers to a crucial layer of software that provides the fundamental operations required for hardware and applications to function seamlessly. This type of software primarily includes **operating systems** (like Windows, macOS, Linux, and Android), which act as an interface b...


Slide Content

COMPUTER SYSTEM SOFTWARE Presented by: Group 3

COMPUTER SYSTEM SOFTWARE It is  a type of computer program that is designed to run a computer's hardware and application programs . System software is the interface between the hardware and user applications.

CONTENTS OF THE SUBJECT Here’s what you’ll find in this subject: 4.1. Word Processing System 4.2. Types of Word Processor 4.3. Word Processing Software 4.4. The Programming Cycle Defining the Problem Planning the Solution Coding the Solution Checking Out the Problem; And Documentation 4.5. Programming Languages: Its Categories and Features 4.6. Program Planning and Development 4.7. Structured Designed; Top-Down vs. Bottom-Up 4.8. Structured Designed Using Flowcharts 4.9. Systems Software 4.10. Application Software/ Application Programs

4.11. Functions and Structure of an Operating System 4.12. Program that Make Up an Operating System Control Programs and; Service Programs 4.13. Surveys of Operating Systems MS-DOS The Windows Family of Operating System; History of Windows UNIX and LINUX 4.14. Basic Applications of Software Packages 4.15. Programming Paradigm 4.16. Major Programming Paradigms Imperative Logical Functional and; Object- Oriented Paradigms 4.17. Other Programming Paradigms Tree Expert System Stream Set and; Neutral Network 4.18. Interpreters and

4.1. Word Processing Systems Word Processing refers to computer aided preparation of documents. A Word Processing System Consist of equipment, procedures, and people whereby thoughts and ideas are expressed and distributed in hardcopy and soft-copy forms. Word Processing System is capable of text editing that can minimizes the needs for secretaries to type numerous drafts and reports.

4.2. Types of Word Processors Through history, there have been three types of word processors: Mechanical , Electronic and Software. Mechanical Word Processor The first word processing device (a "Machine for Transcribing Letters" that appears to have been similar to a typewriter) was patented by Henry Mill for a machine that was capable of "writing so clearly and accurately you could not distinguish it from a printing press". https://heveblog.wordpress.com/2016/01/07/7-jan-1714-henry-mill-1st-typewriter-invented/

4.2. Types of Word Processors Electronic word processing In the early 1970s, word processing began to slowly shift from glorified typewriters augmented with electronic features to become fully computer-based (although only with single-purpose hardware) with the development of several innovations. Just before the arrival of the personal computer (PC), IBM developed the floppy disk. In the early 1970s, the first word-processing systems appeared which allowed display and editing of documents on CRT screens. https://en.wikipedia.org/wiki/Word_processor_%28electronic_device%29

4.2. Types of Word Processors Word Processing Software The final step in word processing came with the advent of the personal computer in the late 1970s and 1980s and with the subsequent creation of word processing software. Word processing software that would create much more complex and capable output was developed and prices began to fall, making them more accessible to the public. https://www.computerhope.com/jargon/w/word-processor.htm

4.3. Word Processing Software The word processing software is used to apply the basic editing and design and also helps in manipulating the text to your pages whereas the word processor, is a device that provides editing, input, formatting, and output of the given text with some additional features. Word processing software is designed to allow users to manipulate and design text. Understand the definition and explore types of word processing, and discover the different office suites involved in various companies' word processing software. Working with Text Example: - A marketing plan to promote a new product. Most of these documents are produced using word processing software .

4.3. Word Processing Software Some of the functions of word processing software include: Creating, editing, saving and printing documents. Copying, pasting, moving and deleting text within a document. Formatting text, such as font type, bolding, underlining or italicizing. Creating and editing tables. Inserting elements from other software, such as illustrations or photographs. Correcting spelling and grammar.

4.4. The Programming Cycle Defining the Problem - Suppose that, as a programmer, you are contacted because your services are needed. You meet with users from the client organization to analyze the problem, or you meet with a systems analyst who outlines the project. Planning the Solution - Two common ways of planning the solution to a problem are to draw a flowchart and to write pseudo code, or possibly both. Essentially, a flowchart is a pictorial representation of a step-by-step solution to a problem Coding the Program - As the programmer, your next step is to code the program-that is, to express your solution in a programming language. You will translate the logic from the flowchart or pseudo code-or some other tool-to a programming language. Figure 1: Flow Chart Symbols and Flow Chart For Mailing Letter

4.4. The Programming Cycle Testing the Program - Some experts insist that a well-designed program can be written correctly the first time. In fact, they assert that there are mathematical ways to prove that a program is correct. These phases involves the steps of testing the program: Desk-checking - This phase, similar to proofreading, is sometimes avoided by the programmer who is looking for a shortcut and is eager to run the program on the computer once it is written . Translating - A translator is a program that (1) checks the syntax of your program to make sure the programming language was used correctly, giving you all the syntax-error messages, called diagnostics, and (2) then translates your program into a form the computer can understand. Debugging - In this phase you run the program using test data that you devise. Documenting the Program - Documenting is an ongoing, necessary process, although, as many programmers are, you may be eager to pursue more exciting computer-centered activities. Documentation is a written detailed description of the programming cycle and specific facts about the program.

4.5. Programming Languages What is a programming language? A programming language consists of a vocabulary containing a set of grammatical rules intended to convey instructions to a computer or computing device to perform specific tasks. The 5 Categories of Programming Language that are classified are: Procedural Programming Language Functional Programming Language Scripting Programming Language Logic Programming Language Object-Oriented Programming Language

4.5. Programming Languages Features of programming languages: Simplicity - the language must offer clear and simple concepts that facilitate learning and application, in a way that is simple to understand and maintain. Simplicity is a difficult balance to strike without compromise the overall capability. Naturalness - this means that its application in the area for which it was designed must be done naturally, providing operators, structures and syntax for operators to work efficiently. Abstraction - it is the ability to define and use complicated structures or operations while ignoring certain low level details. Efficiency - Programming languages must be translated and executed efficiently so as not to consume too much memory or require too much time.

4.5. Programming Languages Structuring - the language allows programmers to write their code according to structured programming concepts, to avoid creating errors. Compactness - with this characteristic, it is possible to express operations concisely, without having to write too many details. Locality - refers to the code concentrating on the part of the program with which you are working at a given time.

4.6. Program Planning and Development Program development is the branch of programming that examines the composition and interrelationships of the individual elements of a program, that is, the structure; also, the process of assembling of a program. The elements in this case are the operators corresponding to the statements of the algorithm that is reflected in the program. While Program development is the process of creating application programs.

4.7 Structure Design Top Down Structure chart is a documentation tool that shows the relationships among the sub problems of a problem. Structure chart

4.7 Structure Design Bottom Up Any design method in which the most primitive operations are specified first and the combined later into progressively larger units until the whole problem can be solved: the converse of TOP-DOWN DESIGN. For example, a communications program might be built by first writing a routine to fetch a single byte from the communications port and working up from that

4.8 Structure Design Using Flowcharts Flowcharts Flowcharts are sometimes called by more specialized names such as Process Flowchart , Process Map, Functional Flowchart, Business Process Mapping, Business Process Modeling and Notation (BPMN), or Process Flow Diagram (PFD). They are related to other popular diagrams, such as Data Flow Diagrams (DFDs) and Unified Modeling Language (UML) Activity Diagrams

But Fryman, in his 2001 book Quality and Process Improvement , differentiated the types in multiple ways from more of a business perspective than a computer perspective: Decision Flowchart. Logic Flowchart. Systems Flowchart. Product Flowchart. Process Flowchart.

4.8 Structure Design Using Flowcharts Additional flowchart types defined by others include: Swimlane Diagram, a.k.a Swimlane Flowchart: To delineate who does what in cross-team processes. Workflow Flowchart: To document workflows, often involving tasks, documents and information in offices. Event-Driven Process Chain (EPC) Flowchart: To document or plan a business process. Specification and Description Language (SDL) Flowchart: To brainstorm computer algorithms using three basic components: system definition, block and process. These related diagrams are also sometimes thought of as types of flowcharts: Data Flow Diagram (DFD): To map out the flow of information for any system or process. Process Flow Diagram (PFD), a.k.a. Process Flowchart: To illustrate the relationships between major components at an industrial plant. Business Process Model and Notation (BPMN 2.0): To model the steps of a planned business process.

4.9 System Software System Software can be designed as the software in such a way so that it can control and work with computer hardware. It acts as an interface between the device and the end user. System Software It provides a platform for other software and includes the programs managing the computer itself, such as the computer’s operating system, file management utilities and disk operating system (or DOS). The system’s files consist of libraries of functions, system services, drivers for printers and other hardware, system preferences and other configuration files. The programs in system software encompass assemblers, compilers, file management tools, system utilities and debuggers. Function of System Software System software controls a computer’s internal functioning, chiefly through an operating system, and also controls such peripherals as monitors, printers, and storage devices.

4.9 System Software Features of System Software High speed Hard to manipulate Written in a low-level computer language Close to the system Versatile Examples of System Software For desktop computers, laptops and tablets: Microsoft Windows Windows MacOS (for Apple devices) GNU/Linux Example : operating systems, antivirus software etc. For smartphones: GNU/ LinuxApple’s iOS Google’s Android Windows Phone OS

System software consist of the following elements: Device Driver - it is a computer program. Computer hardware can interact with the higher-level computer programs with the help of device drivers. These device drivers act as a translator between the application of the user and the hardware device. Due to this, it simplifies programming. Operating System is the system which manages the hardware of the computer. The operating system consists of program and data. An operating system also provides us with services so that we can execute the application software. Example: Linux, Unix, Microsoft Windows etc. Server - it is a program which works like a socket listener in a computer networking system. A server computer is a series of computers which link other computers with itself. The server can provide some essential services to both private users and public users via the internet across a network. Utility Software - it performs small tasks which are used to manage computer hardware and application software. Example: system utilities, virus scanners etc...

Windowing System - it supports the implementation of window managers. Windowing system provides essential support to graphics hardware and pointing devices like keyboard and mice. The windowing system is a component of the graphical user interface. Types of system software There are five types of system software which are as follows: Operating system - operating system is the central part of the computer system, or you can say that it is the lifeline of the computer. We will install the OS on a computer so that it can function smoothly. Suppose all the devices like keyboard, mouse, CPU, monitor are connected and now you think as we switch on the power supply, the computer will start working. No, this is not possible until we install the operating system on it. It is necessary to install as it performs the following functions: It will allocate resources to each task. It will keep the all hardware parts of the system in a ready state so that it can follow the instructions given by the user. It enables the user to access and use application software. It schedules the multiple tasks by priority. It controls the improper use of the computer.

It sets the coordination between the different devices. It prevents the error during the use of the software. It enables the computer to access network. It manages different computer resources such as software, hardware etc... It controls the input and output devices of the computer. It detects, installs and troubleshoot devices. Example: The earlier OS was MS-DOS which make use of Command Line Interface (CLI). After then, windows was developed by Microsoft which make use of Graphical User Interface (GUI). So, they keep on evolving. Programming Language Translators Programming Language Translators are those who convert the high-level language and middle-level language into machine language as machine understands only its language. Java, C, C++, PHP, Python all are the examples of high-level language. Translators also help in various tasks like: When the code rules are not followed, they provide the diagnostic reports. It will make a list of both source code and program details. Translators identify syntax errors when the system is translated. It allocates the storage of the data

Device Drivers Driver software is a type of system software so that we can use our devices smoothly without any troubleshooting problem. This type of software enables the components to perform their tasks as directed by the OS. There are some examples of devices which requires drivers: Mouse Keyboard Touch pad Printer Firmware Software It is the operational software which is already embedded in flash, ROM, EPROM,EEPROM memory chips so that the OS can identify them quickly. The task of the firmware is to directly manage and control all the activities of any single hardware. Display card Network card Sound Function keys

4.10 Application Software / Application Programs Difference between System Software and Application Software Application Software Applications software is capable of dealing with user inputs and helps the user to complete the task. It is also called end-user programs or only an app. It resides above system software. Computer programs intended to perform user’s tasks, as opposed to those used by the computer itself or by programmers writing further programs. Some examples of Application Software are Word processing software, Spreadsheets Software, Presentation, Graphics, CAD/CAM, Sending email etc. System Software Application Software We make use of system software for operating hardware of the computer. The user makes use of application software to perform some specific task. When the operating system is installed on the computer, then the system software is also mounted on the machine. We install the application software according to the requirement of the user. System software works in the background. So the user is not able to interact with it. Generally, the user interacts with the application software. It can run independently as it provides the platform for the running application software. It can’t run independently because it is not able to run without the presence of system software. Example: compiler, assembler, interpreter etc... Example: word processor, web browser, media player etc...

Types of Application Software Presentation Software Spreadsheet Software Database Software Multimedia Software Simulation Software Word Processing Software Application Program Applications programs are programs written to solve specific problems, to produce specific reports, or to update specific files. A computer program that performs useful work on behalf of the user of the computer (For example a word processing or accounting program) as opposed to the SYSTEM SOFTWARE which manages the running of the computer itself, or to the DEVELOPMENT software which is used by programmers to create other programs. An application program is typically self-contained, storing data within files of a special (often proprietary) format that it can create, open for editing and save to disk: this is in distinction to a UTILITY program, which typically performs simple operations on files created by other programs.

4.11 Function and Structure of an Operating System Function The three main functions of an operating system Loading Programs The operating system as a virtual machine The operating system as a resource manager

Loading Programs The first computers were supplied without an operating system. The very first PCs had only one agenda: a BASIC language interpreter who was contained in ROM. Upon occurrence of cassette players and so more reliable, floppy drives, this began to change: if an executable disk was placed in the floppy drive, the program was executed (it was eventually then replacing the disk with a data disk), otherwise the BASIC interpreter repeated the hand. The operating system as a virtual machine The management of a given computer system, such as the IBM-PC, is a prior language machine. This is primary and cumbersome for most computers, especially regarding the input-output. Few programs would be developed if each programmer had knowledge of the operation, for example, of a particular hard drive any errors that may occur when playing a block. 

The operating system as a resource manager Modern computers consist of processors, memory, clocks, records, monitors, network interfaces, printers, and other devices that can be used by multiple users simultaneously. The work consists of the operating system to direct and control the allocation of processors, memory and peripheral devices the various programs that use it. Operating System as a Resource Manager  Operating System Also Known as the Resource Manager Means Operating System will Manages all the Resources those are Attached to the System means all the Resource like Memory and Processor and all the Input output Devices those are Attached to the System are Known as the Resources of the Computer System and the Operating system will Manage all the Resources of the System. The Operating System will identify at which Time the CPU will perform which Operation and in which Time the Memory is used by which Programs. And which Input Device will respond to which Request of the user means When the Input and Output Devices are used by the which Programs. So, this will manage all the Resources those are attached to the Computer System.

Storage Management Operating System also Controls the all the Storage Operations means how the data or files will be Stored into the computers and how the Files will be Accessed by the users etc. All the Operations those are Responsible for Storing and Accessing the Files is determined by the Operating System Operating System also Allows us Creation of Files, Creation of Directories and Reading and Writing the data of Files and Directories and also Copy the contents of the Files and the Directories from One Place to Another Place 1) Process Management. The Operating System also Treats the Process Management means all the Processes those are given by the user or the Process those are System ‘s own Process are Handled by the Operating System. The Operating System will Create the Priorities foe the user and also Start or Stops the Execution of the Process and Also Makes the Child Process after dividing the Large Processes into the Small Processes

2) Memory Management Operating System also Manages the Memory of the Computer System means Provide the Memory to the Process and Also De-allocate the Memory from the Process. And also defines that if a Process gets completed then this will de-allocate the Memory from the Processes. 3) Extended Machine   Operating System also behaves like an Extended Machine means Operating system also Provides us Sharing of Files between Multiple Users, also Provides Some Graphical Environments and also Provides Various Languages for Communications and also Provides Many Complex Operations like using Many Hardwares and Software’s. 4) Mastermind Operating System also performs Many Functions and for those Reasons we can say that Operating System is a Mastermind. It provides Booting without an Operating System and Provides Facility to increase the Logical Memory of the Computer System by using the Physical Memory of the Computer System and also provides various Types of Formats Like NTFS and FAT File Systems.

Structure What is the Operating System Structure An operating system has a complex structure, so we need a well-defined structure to assist us in applying it to our unique requirements. Just as we break down a big problem into smaller, easier-to-solve subproblems, designing an operating system in parts is a simpler approach to do it. And each section is an Operating System component. The approach of interconnecting and integrating multiple operating system components into the kernel can be described as an operating system structure. As mentioned below, various sorts of structures are used to implement operating systems. Simple Structure It is the simplest Operating System Structure and is not well defined; It can only be used for small and limited systems. In this structure, the interfaces and levels of functionality are well separated; hence programs can access I/O routines which can cause unauthorized access to I/O routines.

This structure is implemented in MS-DOS operating system: The MS-DOS operating System is made up of various layers, each with its own set of functions. These layers are: Application Program System Program MS-DOS device drivers ROM BIOS device drivers Layering has an advantage in the MS-DOS operating system since all the levels can be defined separately and can interact with each other when needed. It is easier to design, maintain, and update the system if it is made in layers. So that's why limited systems with less complexity can be constructed easily using Simple Structure. If one user program fails, the entire operating system gets crashed. The abstraction level in MS-DOS systems is low, so programs and I/O routines are visible to the end-user, so the user can have unauthorized access.

APPLICATION PROGRAM SYSTEM PROGRAMS DEVICE DRIVERS BIOS DEVICE DRIVERS

Advantages of Simple Structure It is easy to develop because of the limited number of interfaces and layers. Offers good performance due to lesser layers between hardware and applications. Disadvantages of Simple Structure If one user program fails, the entire operating system crashes. Abstraction or data hiding is not present as layers are connected and communicate with each other. Layers can access the processes going in the Operating System, which can lead to data modification and can cause Operating System to crash.

External structure of an operating system Kernel and utilities The operating system includes a number of routines (subroutines). the most important are the core or kernel. It is loaded into memory live at system initialization and contains many procedures needed to ensure system operation. Other routines, less critical, are called utilities. The kernel of an operating system consists of four main parts: the manager tasks (or processes), the memory manager, and file manager IO Device Manager. It also has two auxiliary parts: charger operating system and shell. Task Manager On a time-shared system, one of the most important parts of the operating system is the task manager or scheduler. A system to a single processor, it divides the time interval or called slices. periodically, the task manager decides to interrupt the current process and start (or resume) the performance of another, or because the first has exhausted its allocation time the process is that it is blocked (waiting for a given one of the devices). Control of several parallel activities is hard work. Therefore, designer’s operating systems have consistently, over the years, improved parallelism model to make it easier to use.

The memory manager Memory is an important resource that must be managed carefully. Any microcomputer has, since the late 1980s, ten times more memory than the IBM 7094, the most powerful computer in the early sixties. But the size of programs increases just as fast as that of memories. Memory management is the responsibility of the memory manager. One must know the free parts and occupied parts of memory, allocating memory to processes that need it, reclaim the memory used by a process when it ends and treating back and forth (swapping in or paging) between the disk and the main memory when they cannot contain all processes. The file manager As we have already said, one of the fundamental tasks of the operating system is to hide the specifics disks and other input-output devices and provide the programmer with a nice and easy to use template. This is done through the file concept.

Device Manager Control of input-output (I/O) of the computer is one of the primary of an operating system function. It must send commands to devices, intercepting interruptions, and handle errors. It must also provide a simple interface and easy to use between devices and the rest of the system to be as far as possible, the same for all devices, that is to say, irrespective of the device used. The input-output code is an important part of an entire operating system. The operating system loader In general, these days, when the computer (compatible PC or Mac) is turned on, it runs a program called BIOS (for Basic Input Output System) placed a definite address and content RAM. This software initializes the devices, loads a sector of a disc, and performs what is placed there. When designing an operating system, the operating system loader sector placed or, more accurately, the loader of the operating system loader (or pre-charger) since the content of a sector is insufficient for the charger itself.

The shell The actual operating system is the code that defines system calls. System programs such as text editors, compilers, assemblers, linkers, and command interpreters are not part of the operating system. However, the command interpreter (shell) is often considered part of it. In its most basic form, the command executes an infinite loop that displays a prompt (thereby showing that one expects something), reads the program name entered by the user at that time and ‘runs.

4.12 Program that Make Up an Operating System: Control Programs and Service Programs Service Programs Operating system services: The operating system provides the programming environment in which a programmer works on a computer system. The user program requests various resources through the operating system. The operating system gives several services to utility programmers and users. Applications access these services through application programming interfaces or system calls. By invoking those interfaces, the application can request a service from the operating system, pass parameters, and acquire the operation outcomes.

Following are the services provided by an operating system - Program execution Control Input/output devices Program creation Error Detection and Response Accounting Security and Protection File Management Communication

Control Program (CP) The component of  IBM 's  Virtual Machine  (VM) that provides "guest support" for operating systems that run on IBM  mainframe  compatible processors. Cp does this by providing a seamless emulation  of privileged functions in the problem program environment. Everything you do on your computer is the direct result of hardware and software working together. The hardware provides the raw power and functionality that enables the computer to work, and the operating system controls the bulk of the hardware's activity. You'd have a hard time using a computer without an operating system, as all of your hardware parts would be unable to communicate with one another. All peripheral devices in a computer are controlled by software, also known as a driver. The driver software accepts the commands from the OS and initiates the commands the controller circuit accepts to activate functions in a storage drive or other peripheral hardware. See driver , controller , network control program and peripheral .

4.13 SURVEY OF OPERATING SYSTEMS (MS-DOS, THE WINDOWS FAMILY OF OPERATING SYSTEM: UNIX AND LINUX) The operating system (OS) manages all of the software and hardware on the computer. It performs basic tasks such as file, memory and process management, handling input and output, and controlling peripheral devices such as disk drives and printers.  The Windows Family of Operating Systems Microsoft Windows, also called Windows and Windows OS, computer operating system (OS) developed by Microsoft Corporation to run personal computers (PCs).  Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry.

Active Windows families include Windows NT and Windows IoT; these may encompass subfamilies (e.g. Windows Server or Windows Embedded Compact/Windows CE). Defunct Windows families include Windows 9x, Windows Mobile and Windows Phone. Active Windows ▪︎Windows NT is a proprietary graphical operating system produced by Microsoft, the first version of which was released on July 27, 1993. It is a processor-independent, multiprocessing and multi-user operating system. ▪︎Windows IoT, formerly Windows Embedded, is a family of operating systems from Microsoft designed for use in embedded systems. Microsoft currently has three different subfamilies of operating systems for embedded devices targeting a wide market, ranging from small-footprint, real-time devices to point of sale (POS) devices like kiosks. Windows Embedded operating systems are available to original equipment manufacturers (OEMs), who make it available to end users preloaded with their hardware, in addition to volume license customers in some cases. 

Subfamilies ▪︎Windows Server is a brand name for a group of server operating systems (OS) that Microsoft has been developing since April 24, 2003 ▪︎Windows Embedded Compact,[6] formerly Windows Embedded CE, Windows Powered and Windows CE, was an operating system subfamily developed by Microsoft as part of its Windows Embedded family of products. Defunct Windows families include: Windows 9x, Windows Mobile and Windows Phone.  MS-DOS - acronym for Microsoft Disk Operating System, also known as Microsoft DOS, is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few operating systems attempting to be compatible with MS-DOS, are sometimes referred to as "DOS" (which is also the generic acronym for disk operating system). MS-DOS was the main operating system for IBM PC compatibles during the 1980s, from which point it was gradually superseded by operating systems offering a graphical user interface (GUI), in various generations of the graphical Microsoft Windows operating system.

The history of Unix dates back to the mid-1960s. when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna that decided to redo the work, but on a much smaller scale. Linux began in 1991 as a personal project by Finnish student Linus Torvalds: to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2

4.14 BASIC APPLICATIONS OF SOFTWARE PACKAGES What is Application Software? Application Software is a type of computer program that performs specific functions. These functions, performed by application software, can be personal, business as well as educational. Thus, application Software is also known as end-user software or productivity software. Each software program is developed to assist users with the particular process related to productivity, efficiency, and communication. Unlike System Software, Application Software is specific for its functionality and completes the task that they are developed to do. The majority of apps that we see on our smartphones are examples of application software.

Functions of Application Software Application Software Programs are developed to execute a large variety of roles. The functions are not limited to but depend upon the user’s need. Some of the most common functions of application software are ▪︎Manipulating data ▪︎Managing information ▪︎Calculating figures ▪︎Constructing visuals ▪︎Coordinating resources ▪︎Writing reports ▪︎Creating spreadsheets ▪︎Manipulating images ▪︎Keeping records ▪︎Developing websites ▪︎Calculating expenses

Examples of Application Software The most common examples of application software are the computer programs that we used in our everyday life. This application software includes: Microsoft products such as Office, PowerPoint, Word, Excel, Outlook, etc. Music Application Softwares like Pandora and Spotify Real-time online communication like Skype, Google Meet, and Zoom Team collaboration software like Slack Internet browsers like Chrome, Safari, and Firefox Multimedia Software like MX Player and VLC Media Player

Almost every other application that you are using is an example of application software. Types of Application Software The type of application software you require to use depends upon your needs. Here is the list of application software, or you can say types of application software. 1. Word Processing Software Word processing software is used to format, beautify, and manipulate text. It allows features such as synonyms and antonyms. You can change the fonts, colors, and style according to your choice with the word art feature. Error checking as well as grammar and spell checking options are also available in it. Microsoft Word is the best example of a word processing software. 2. Spreadsheet Software Spreadsheet software is majorly used to store data in table format and perform calculations. Intersecting cells are given in a spreadsheet to keep various data fields such as time, date, text, and numbers. Users can perform calculations with formulas and functions. The best example of spreadsheet software is Microsoft Excel.  

3. Presentation Software Presentation Software lets you put forth your thoughts and ideas in a piece of visual information. Then, you can present that information in the form of slides. You can make your slides interactive and informative by adding videos, texts, charts, graphs, and images. The best example of presentation software is Microsoft PowerPoint. 4. Multimedia Software Multimedia Software lets you create or record videos, audio, and image files. Such app software is used in video editing, graphics, and animations. Common examples of multimedia software are VLC player, MX Player, and Windows Media Player. 5. Web Browsers These software applications are used to browse on the internet. They let you locate and retrieve data from the web. The most popular web browsers are Chrome and Firefox. 6. Educational Software These types of application software are called academic software as they are particularly designed to facilitate learning. All different kinds of tutorial software are included in it. Examples of educational software are EDX, Mind Play, and Kid Pix.

7. Graphics Software Graphics Software is used to make changes in visual data, images, and animation. It comprises different editorial software.  Adobe Photoshop, Unity 3d, and Paint Shop are examples of graphics software. 8. Freeware As you can guess from the name, this type of software is available free of cost. Therefore, you can download and install them for free. However, you are not allowed to make any change in its source code. Skype is an example of freeware software. 9. Shareware Such Software are distributed to the users on a trial basis. Then, if the users like it and want to continue, they have to pay for that software. An example of shareware software is WinZip.

10. Simulation Software Simulation Software is a monitoring program that allows the user to observe an operation without performing it. Such software is useful when the existing system’s work is not highly accurate, predictable, or dangerous. It is used widely in engineering, robotics, flight systems, weather forecast, testing, education, and video gaming. MATLAB is the best example of simulation software. 11. Open Source Open Source software is available with a source code and rights for anyone to inspect, modify and enhance it. Moreover, most open-source software is available for free, while very few are paid ones at such a conditional level. 12. Closed Source Closed Source software is precisely the opposite to open-source software. They are paid software and have intellectual property rights or patient over source code. It usually comes with some restrictions as well as terms and conditions.

4.15 - 4.16 Programming Paradigm   The term programming paradigm refers to a style of programming. It does not refer to a specific language, but rather it refers to the way you program. There are lots of programming languages that are well-known but all of them need to follow some strategy when they are implemented. And that strategy is a paradigm A  programming paradigm  is a style, or “way,” of programming. Some languages make it easy to write in some paradigms but not others. Never use the phrase “programming  language  paradigm.” A paradigm is a way of  doing  something (like programming), not a concrete thing (like a language). Now, it’s true that if a programming language L happens to make a particular programming paradigm P easy to express, then we often say “L is a P language” (e.g. “Haskell is a functional programming language”) but that does not mean there is any such thing as a “functional language paradigm”.

Some Common Paradigms You should know these: Imperative : Programming with an explicit sequence of commands that update state. Declarative : Programming by specifying the result you want, not how to get it. Structured : Programming with clean, goto -free, nested control structures. Procedural : Imperative programming with procedure calls. Functional  (Applicative): Programming with function calls that avoid any global state. Function-Level  (Combinator): Programming with no variables at all. Object-Oriented : Programming by defining objects that send messages to each other. Objects have their own internal (encapsulated) state and public interfaces. Object orientation can be: Class-based : Objects get state and behavior based on membership in a class. Prototype-based : Objects get behavior from a prototype object. Event-Driven : Programming with emitters and listeners of asynchronous actions. Flow-Driven : Programming processes communicating with each other over predefined channels. Logic  (Rule-based): Programming by specifying a set of facts and rules. An engine infers the answers to questions.

Constraint : Programming by specifying a set of constraints. An engine finds the values that meet the constraints. Aspect-Oriented : Programming cross-cutting concerns applied transparently. Reflective : Programming by manipulating the program elements themselves. Array : Programming with powerful array operators that usually make loops unnecessary. Paradigms are  not meant to be mutually exclusive ; a single program can feature multiple paradigms! Make sure to check out  Wikipedia’s entry on Programming Paradigms .

A Look At Some Major Paradigms Imperative Programming Control flow in  imperative programming  is  explicit : commands show  how  the computation takes place, step by step. Each step affects the global  state  of the computation.      result = []      i  = 0 start:      numPeople  = length(people)     if  i  >=  numPeople   goto  finished     p = people[ i ]      nameLength  = length(p.name)     if  nameLength  <= 5  goto   nextOne      upperName  =  toUpper (p.name)      addToList (result,  upperName ) nextOne :      i  =  i  + 1      goto  start finished:     return sort(result)

Structured Programming Structured programming  is a kind of imperative programming where control flow is defined by nested loops, conditionals, and subroutines, rather than via gotos . Variables are generally local to blocks (have lexical scope). Early languages emphasizing structured programming: Algol 60, PL/I, Algol 68, Pascal, C, Ada 83, Modula, Modula-2. Structured programming as a discipline is sometimes though to have been started by a famous letter by Edsger Dijkstra entitled  Go to Statement Considered Harmful . result = []; ​ for  i  = 0;  i  < length(people);  i ++ { ​     p = people[ i ]; ​     if length(p.name)) > 5 { ​          addToList (result,  toUpper (p.name)); ​     } ​ } ​ return sort(result);

Object Oriented Programming OOP is based on the sending of  messages  to objects. Objects respond to messages by performing operations, generally called  methods . Messages can have arguments. A society of objects, each with their own local memory and own set of operations has a different feel than the monolithic processor and single shared memory feel of non object oriented languages. One of the more visible aspects of the more pure- ish OO languages is that conditionals and loops become messages themselves, whose arguments are often blocks of executable code. In a Smalltalk-like syntax: This can be shortened to: result := List new. people each: [:p |   p name length  greaterThan : 5  ifTrue : [result add (p name upper)] ] result sort. ^result ^people filter: [:p | p name length  greaterThan : 5] map: [:p | p name upper] sort

Many popular languages that call themselves OO languages (e.g., Java, C++), really just take some elements of OOP and mix them in to imperative-looking code. In the following, we can see that length and  toUpper  are methods rather than top-level functions, but the for and if are back to being control structures: The first object oriented language was Simula-67; Smalltalk followed soon after as the first “pure” object-oriented language. Many languages designed from the 1980s to the present have labeled themselves object-oriented, notably C++, CLOS (object system of Common Lisp), Eiffel, Modula-3, Ada 95, Java, C#, Ruby result = [] for p in people {     if  p.name.length  > 5 {          result.add ( p.name.toUpper );     } } return  result.sort ;

Declarative Programming Control flow in  declarative programming  is  implicit : the programmer states only  what  the result should look like,  not  how to obtain it. No loops, no assignments, etc. Whatever engine that interprets this code is just supposed go get the desired information, and can use whatever approach it wants. (The logic and constraint paradigms are generally declarative as well.) select upper(name) from people where length(name) > 5 order by name

Functional Programming In  functional programming , control flow is expressed by combining function calls, rather than by assigning values to variables: Yikes! We’ll describe that later. For now, be thankful there’s usually syntactic sugar: sort(   fix( λf .  λp .     if(equals(p,  emptylist ),        emptylist ,       if(greater(length(name(head(p))), 5),         append( to_upper (name(head(p))), f(tail(p))),         f(tail(people)))))(people)) let     fun  uppercasedLongNames  [] = []       |  uppercasedLongNames  (p ::  ps ) =           if length(name p) > 5 then ( to_upper (name p))::( uppercasedLongNames   ps )           else ( uppercasedLongNames   ps ) in     sort( uppercasedLongNames (people))

Huh? That still isn’t very pretty. Why do people like this stuff? Well the real power of this paradigm comes from passing functions to functions (and returning functions from functions). We can do better by using the cool |> operator. Here x |> f just means f(x). The operator has very low precedence so you can read things left-to-right: Let’s keep going! Notice that you wouldn’t write map( λx . square(x)), right? You would write map(square). We can do something similar above, but we have to use function composition, you know, (f o g)x is f(g(x)), so: sort(     filter( λs . length s > 5,         map( λp .  to_upper (name p),             people))) people |> map ( λp .  to_upper  (name p)) |> filter ( λs . length s > 5) |> sort people |> map ( to_upper  o name) |> filter ( λs . length s > 5) |> sort

Here are three things to read to get the gist of functional programming: Kris Jenkins’ article Chris Done’s two-part article Joel Spolsky’s article on map and reduce With functional programming: There are no commands, only side-effect free expressions Code is much shorter, less error-prone, and much easier to prove correct There is more inherent parallelism, so good compilers can produce faster code Some people like to say: Functional, or Applicative, programming is programming without assignment statements: one just applies functions to arguments. Examples: Scheme, Haskell, Miranda, ML. Function-level programming does away with the variables; one combines functions with  functionals , a.k.a.  combinators . Examples: FP, FL, J. Exercise : Write the above example in Miranda, ML, and J. Exercise : Research the following programming styles and state how they are similar and how they are different from each other: (a) Stack-based, (b) Concatenative, (c) Point-free, (d) Tacit.

Many languages have a neat little thing called  comprehensions  that combine map and filter. sorted( p.name.upper () for p in people if  len (p.name) > 5) Logic and Constraint Programming Logic programming  and  constraint programming  are two paradigms in which programs are built by setting up relations that specify  facts  and inference  rules , and asking whether or not something is true (i.e. specifying a  goal .) Unification and backtracking to find solutions (i.e.. satisfy goals) takes place automatically. Languages that emphasize this paradigm: Prolog, GHC, Parlog , Vulcan, Polka, Mercury, Fnil . Exercise : Write the running example in Prolog.

Languages and Paradigms One of the characteristics of a language is its support for particular programming paradigms. For example, Smalltalk has direct support for programming in the object-oriented way, so it might be called an object-oriented language. OCaml , Lisp, Scheme, and JavaScript programs tend to make heavy use of passing functions around so they are called “functional languages” despite having variables and many imperative constructs. There are two very important observations here: Very few languages implement a paradigm 100%. When they do, they are  pure . It is incredibly rare to have a “pure OOP” language or a “pure functional” language. A lot of languages have a few escapes; for example in OCaml , you will program with functions 90% or more of the time, but if you need state, you can get it. Another example: very few languages implement  OOP the way Alan Kay envisioned it . A lot of languages will facilitate programming in one or more paradigms. In Scala you can do imperative, object-oriented, and functional programming quite easily. If a language is  purposely  designed to allow programming in many paradigms is called a  multi-paradigm language . If a language only  accidentally  supports multiple paradigms, we don’t have a special word for that.

4. 17: Other Programming Paradigms ( Tree, Expert System, Stream, and Nuetral Network)

Tree Paradigms - The tree paradigm, which is a problem in optimal stopping, has important ramifications for human capital acquisition, search behavior, firm entry, and in the theory of renewable resources. Our paper extends previous work in the stochastic literature on several fronts. We exhibit a tractable solution to the rotation problem for the stochastic model, analyze the effects of inputs which control the growth process, and illustrate our results with a multi-stage learning problem. Expert Paradigm - Expert systems have been constructed using various general-purpose programming languages as well as specific tools. Expert systems, which are based upon practical experience; decision systems, which derive from modelling skills; and situation-action systems, which rely on production process design skills.

Stream Paradigm - A stream is an important abstraction: it represents an unbounded, continuously updating data set, where unbounded means “of unknown or of unlimited size”. Neural Network Paradigm - An Artificial Neural Network is an information processing paradigm that is inspired by biological nervous system. It composed of a large number of highly interconnected processing elements called neurons . Nueral Network configured for a specific applications, such as pattern recognition or data classification.

4.18: Interpreters and Compilers

Interpreters - An interpreter is a program that executes the programming code directly instead of just translating it into another format. It translates and executes programming language statements one by one. An interpreter takes less time to interpret a source program as distinguished by a compiler. Advantages of Interpreter An interpreter translates the program line by line. The interpreter is smaller in size. It is flexible.

Compilers - A compiler is a computer program that reads a program written in a high-level language such as FORTRAN, PL/I, COBOL, etc. It can translate it into the same program in a low-level language including machine language. The compiler also finds out the various errors encountered during the compilation of a program. Advantages of Compilers A compiler translates a program in a single run . It consumes less time. CPU utilization is more.