Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
WHAT IS A SOFTWARE
Computer Instructions or data, anything that can be stored electronically is Software. Collection of Different programs makes a Software Software are of any types:
System Software: Application Software Open source Software and Proprietary Software
APPLICATION SOFTWARE:
Application Software includes programs that do real work for user. Example: Payroll systems, Inventory Control, Manage student database, Word Processor, Spreadsheet and Database Management System etc.,
Open source software (OSS) is computer software whose source code is available under a license that permits users to use, change, and improve the software, and to redistribute it in modified or unmodified form. It is often developed in a public, collaborative manner. Well-known OSS products are Linux, Netscape, Apache, etc.,
PROPRIETARY SOFTWARE:
Proprietary software (also called non-free software) is software with restrictions on using, copying and modifying as enforced by the proprietor. Restrictions on use, modification and copying is achieved by either legal or technical means and sometimes both. Proponents of proprietary software are Microsoft.
SYSTEM SOFTWARE:
System Software includes the Operating System and all the utilities that enable the computer to function. System software is a term referring to any computer software which manages and controls the hardware so that application software can perform a task. Example: Operating Systems, Compiler, Loader, Linker, Interpreter.
TRANSLATORS
A device that changes a sentence from one language to another without change of meaning. Types of TRANSLATOR Compiler Assembler Interpreter
COMPILERS
program in one language the source language and translates into an equivalent program in another language the target language. It Converts High-level Language to machine language.
High-Level Language
Compiler
Machine Language
Source Languages
C language Pascal language FORTRAN language
Target Languages
C language Machine language
C++ language
ADA language
PHASES OF COMPILER
PHASES OF COMPILER
Lexical analysis - it contains a sequence of characters called tokens. Input is source program & the output is tokens. Tokens
count++; (
// body of while continues count ... <= 100 ) { count ++ ;
...
SYNTAX ANALYZER
Semantic Analysis: input is parse tree and the output is expanded version of parse tree. Intermediate Code generation - Here all the errors are checked & it produce an intermediate code. Code Optimization - the intermediate code is optimized here to get the target program Code Generation - this is the final step & here the target program code is generated.
INTERPRETERS
Interpreter: An interpreter is a computer program that translates and executes instructions written in a computer programming language line-by-line, unit by unit etc.,
An interpreter needs to be able to analyze, or parse, instructions written in the source language. Example: Lisp systems, etc.,
ASSEMBLERS
An Assembler is a program that translates a symbolic version of an instruction into the binary version.
LANGUAGE LEVELS
High Level Language
Assembler Language
Machine Language
Micro programming
Firmware
Hardware
LOADERS
Loader : A loader is the part of an operating system that is responsible for loading programs into memory, preparing them for execution and then executing them.
The loader is usually a part of the operating system's kernel and usually is loaded at system boot time and stays in memory until the system is rebooted, shut down, or powered off.
In Unix, the loader is the handler for the system call execve().
ROLE OF LOADER
Source Program Translator Object Program
Object program ready for execution
Loader
Translator Assembler/Compiler
Memory
LINKER
Linker : A linker or link editor is a program that takes one or more objects generated by compilers and assembles them into a single executable program.
Linkers can take objects from a collection called a library. The objects are program modules containing machine code and information for the linker.
The linker takes care of arranging the objects in a program's address space.
Object Program
Linker
Object program ready for execution
Executable Code
Loader
SO WE NEEDTHREE PROCESSES
Loading - which allocates memory location and brings the object program into memory for execution - Loader Linking- which combines two or more separate object programs and supplies the information needed to allow references between them - Linker Relocation - which modifies the object program so that it can be loaded at an address different from the location originally specified - Linking Loader
It is a collection of system programs that together controls the operation of a computer system
A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system goals:
Execute user programs and make solving user problems easier. Make the computer system convenient to use.
Hardware - provides basic computing resources e.g. CPU, memory, I/O devices Operating system Controls and coordinates use of hardware among various applications and users Application programs define the ways in which the system resources are used to solve the computing problems of the users Word processors, compilers, web browsers, database systems, video games Users
WHY IT IS IMPORTANT?
Operating systems perform basic tasks, such as: 1. recognizing input from the keyboard 2. sending output to the display screen 3. keeping track of files and directories on the disk 4. controlling peripheral devices such as disk drives and printers.
FUNCTIONS OF OS.
The operating system's tasks, in the most general sense, fall into six categories:
Process management Memory management Device management Storage management Application interface User interface