Computer Organization - Computer Subsystem (Software)


 Software

Software is the lifeblood of modern computers, providing the instructions and programs that make these machines incredibly versatile. It encompasses a wide range of applications, from operating systems that manage hardware resources and facilitate user interactions to utilities that ensure system integrity and security. Developers create software using programming languages, and various tools like compilers and debuggers aid in this process. Software continually evolves, embracing emerging technologies like artificial intelligence and cloud computing, shaping how we work, communicate, and interact with the digital world. In essence, it's the software that transforms a computer from a mere piece of hardware into a powerful tool capable of diverse tasks and functions.

Software can be categorized to two main types:
  • System Software
  • Application Software

1.System Software

  •  System software acts as an intermediary between hardware and application software.
  •  It includes the operating system, which manages hardware resources and provides a user interface.
  •  Device drivers enable communication between the OS and hardware devices.
  •  System utilities help with system maintenance, security, and optimization.
  •  Programming tools like compilers and debuggers aid in software development.
  •  Language translators include interpreters, assemblers, and linkers.
  •  Virtual machines and emulators allow multiple operating systems or legacy software to run on a single system.
  •  Middleware facilitates communication and data exchange between software components.

1.1 System Software - Operating System

  • The core of system software, the OS is a collection of software that manages hardware resources (CPU, memory, storage), controls the execution of processes, and provides a user-friendly interface.
  • The OS acts as the "manager" of the system, making sure that each hardware device interacts smoothly with the others.
  • It also provides the interface by which the user interacts with the computer.
                Example: Windows, MacOS, Linux, Unix, Solaris

1.2 System Software - Utility Software

  •  Utility software enhances system performance and efficiency through tools like disk cleanup and defragmentation.
  •  It contributes to security by including antivirus and anti-malware programs that safeguard against threats.
  •  Utility software is an integral component of system software, optimizing and maintaining computer systems for smooth operation.

1.3 Device Drivers

  •  Device drivers serve as intermediaries between hardware and the operating system.
  •  They translate hardware-specific commands into instructions for the OS.
  •  Device drivers ensure hardware compatibility and enable proper functionality within a computer system.

2.Application Software

  •  Application are non-OS programs that perform some useful task including word processor, spreadsheets, databases, web browsers, C++ compilers,
  • Application software serves specific user needs and tasks.
  •  It includes diverse categories, such as productivity apps and multimedia tools.
  •  Productivity applications enable tasks like word processing and spreadsheet calculations.
  •  Creativity software, like graphic design and video editing tools, aids content creation.
  •  Web browsers allow internet access and interaction with websites.
  •  Entertainment apps encompass gaming, media players, and streaming services.
  •  Custom software may be tailored for specific industries or unique business processes.
                   Example
                        C++ compilers/environments:  
                         CodeWarrior (MacOS, Windows, Solaris)  
                         GNU C++ (UNIX, Linux)  
                        Turbo/Borland C++ (Windows)  
                        Visual C++ (Windows)  

How Software is loaded into the Computer


  •  Software is initially stored on disk when not in use.
  •  Launching a program involves the OS controlling the CPU.
  •  The OS retrieves the program from disk storage.
  •  The program is loaded into the computer's RAM.
  •  RAM provides quick and direct access for the CPU.
  •  Control of the CPU is then transferred to the loaded program.
  •  This process allows for efficient execution of software on a computer system.

Comments

Popular posts from this blog

Computer Organization - Basic Computer Organization

Computer Organization - Organization and Architecture