Saturday, December 10, 2016

WEEK 2-3: COMPUTER SYSTEM SOFTWARE
·      Operating System Concept
An operating system (OS): Is a collection of software that manages computer hardware resources and provides common services for computer programs.
The operating system is an essential component of the system software in a computer system and is the first program loaded into the computer by a boot program and remains in memory at all times.
Application programs usually require an operating system to function.
For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware.
Operating systems can be found on almost any device that contains a computer from cellular phones and video game consoles to supercomputers and web servers.
Examples of popular modern operating systems include Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows, Windows Phone, and IBM z/OS.
All these, except Windows, Windows Phone and z/OS, share roots in UNIX.
  Types of operating systems
Within the broad family of operating systems, there are generally four types, categorized based on the types of computers they control and the sort of applications they support. The categories are:
a)    Real-time operating system
b)   Single-user, single task
c)    Single-user, multi-tasking
d)   Multi-user 

A.  REAL-TIME OPERATING SYSTEM(RTOS)
v Real-time operating systems are used to control machinery, scientific instruments and industrial systems.
v An RTOS typically has very little user-interface capability, and no end-user utilities, since the system will be a "sealed box" when delivered for use.
v A very important part of an RTOS is managing the resources of the computer so that a particular operation executes in precisely the same amount of time, every time it occurs.
v In a complex machine, having a part move more quickly just because system resources are available may be just as catastrophic as having it not move at all because the system is busy.

B.  SINGLE-USER, SINGLE TASK
v As the name implies, this operating system is designed to manage the computer so that one user can effectively do one thing at a time.
v The Palm OS for Palm handheld computers is a good example of a modern single-user, single-task operating system.

C.  SINGLE-USER, MULTI-TASKING
v This is the type of operating system that allows a single user to have more than one task/job/process/program running at the same time.
v This is the type of operating system most people use on their desktop and laptop computers today.
v Microsoft's Windows and Apple's MacOS platforms are both examples of operating systems that will let a single user have several programs in operation at the same time.
v For example, it's entirely possible for a Windows user to be writing a note in a word processor while downloading a file from the Internet while printing the text while listening music
D.  MULTI-USER
v A multi-user operating system allows many different users to take advantage of the computer's resources simultaneously.
v The operating system must make sure that the requirements of the various users are balanced, and that each of the programs they are using has sufficient and separate resources so that a problem with one user doesn't affect the entire community of users.
v Unix, VMS and mainframe operating systems, such as MVS, are examples of multi-user operating systems.
  Utilities Software




  Compiler, Interpreter, Linker, Loader
COMPILER
v A Compiler is a computer program that translates code written in a high level language to a lower level language, object/machine code.
v The most common reason for translating source code is to create an executable program (converting from a high level language into machine language).
Advantages of using a compiler
i.          Source code is not included, therefore compiled code is more secure than interpreted code
ii.          Tends to produce faster code than interpreting source code
iii.          Produces an executable file, and therefore the program can be run without need of the source code
Disadvantages of using a compiler
i.           Object code needs to be produced before a final executable file, this can be a slow process
ii.           The source code must be 100% correct for the executable file to be produced
INTERPRETER
v Interpreters are not much different than compilers.
v They also convert the high level language into machine readable binary equivalents.
v Each time when an interpreter gets a high level language code to be executed, it converts the code line-by-line into an intermediate code before converting it into the machine code.
v Each part of the code is interpreted and then execute separately in a sequence and an error is found in a part of the code it will stop the interpretation of the code without translating the next set of the codes. 
Advantages of using an Interpreter
i.          Easier to debug(check errors) than a compiler
ii.          Easier to create multi-platform code, as each different platform would have an interpreter to run the same code
iii.          Useful for prototyping software and testing basic program logic

Disadvantages of using an Interpreter
i.          Source code is required for the program to be executed, and this source code can be read making it insecure
ii.          Interpreters are generally slower than compiled programs due to the per-line translation method
LINKER
Linker: In high level languages, some built in header files or libraries are stored. These libraries are predefined and these contain basic functions which are essential for executing the program. These functions are linked to the libraries by a program called Linker. If linker does not find a library of a function then it informs to compiler and then compiler generates an error. The compiler automatically invokes the linker as the last step in compiling a program.
LOADER
Loader is a program that loads machine codes of a program into the system memory.
In Computing, a loader is the part of an Operating System that is responsible for loading programs. It is one of the essential stages in the process of starting a program. Because it places programs into memory and prepares them for execution. Loading a program involves reading the contents of executable file into memory.  Once loading is complete, the operating system starts the program by passing control to the loaded program code. All operating systems that support program loading have loaders. In many operating systems the loader is permanently resident in memory.

  Functions of operating system
At the simplest level, an operating system does two things:
v It manages the hardware and software resources of the system. In a desktop computer, these resources include such things as the processor, memory, disk space and more (On a cell phone, they include the keypad, the screen, the address book, the phone dialer, the battery and the network connection).
v It provides a stable, consistent way for applications to deal with the hardware without having to know all the details of the hardware.
The operating system's tasks, in the most general sense, fall into six categories:
a)    Processor management
b)   Memory management
c)    Device management
d)   Storage management (Retrieves and manipulates files)
e)    Application interface (Running the applications)
f)    User interface

  DOS operation
v The first OS used by IBM computers/compatibles
v Where DOS can still be found:
o      Specialized systems using older applications
o      On troubleshooting disks or CDs
o      Used by some diagnostic applications on UBD_CD
v Windows 3.x and DOS
o      Windows 3.x provided a graphical interface
o      Underlying OS functions were performed by DOS
v Windows 9x/Me uses DOS in the underlying OS
v Windows XP/2000/Vista run DOS emulation programs

  Virtualization of operating systems.





No comments:

Post a Comment