Compsci Unit 2

  • Primary Memory: Memory directly connected to the processor (e.g., RAM). It is volatile and used for immediate data access.

  • Secondary Memory: Long-term storage or auxiliary memory (e.g., hard drives). It is non-volatile and used for storing data permanently.

  • Processor Speed: The speed at which the processor can execute instructions. It is measured by the fetch, decode, execute cycle and can be expressed in MIPS (Millions of Instructions Per Second).

  • Bandwidth: The rate at which data can travel between the processor and memory (SRAM/DRAM). It is usually expressed in Mb/s.

  • Screen Resolution: The number of distinct pixels that can be displayed on a screen, given as width x height.

  • Graphics Processor (GPU): A processor that is efficient at manipulating and processing graphics and images. It can be integrated or separate from the main processor.

  • Sound Processor: A processor that handles input, processing, and output of audio signals. It is mostly integrated but can be sold separately.

  • Mainframe: A computer designed to handle many input and output devices and bulk data processing.

  • Supercomputer: A computer made to handle large or complex mathematical calculations.

  • Server: A device that provides services, data, or resources to other computers on a network. It can be physical or virtual.

  • PC (Personal Computer): A computer that can be bought or built to suit the needs of the user and can be modified.

  • Tablet: A portable computer with a touchscreen interface, different from a laptop.

  • Laptop: A portable computer that can run the same OS as a PC.

  • Smartphone: A mobile device with computing capabilities, including sensors like motion, fingerprint, and proximity sensors.

  • Digital Camera: A device for taking pictures and videos, often equipped with sensors to improve image quality.

  • Rendering: The process of generating an image or animation from a model.

  • Single-program Operation: A system where only one program is running at a time.

  • Batch Processing: A system that executes a batch of tasks sequentially without user interaction.

  • Multiprogramming: A method where multiple programs are loaded into memory to increase CPU utilization.

  • Multitasking: Running multiple tasks at the same time by rapidly switching between them.

  • Time Sharing: A system where multiple users can interact with a computer simultaneously, with the OS allocating time slices.

  • Time Slicing: The time allocated to each user in a multi-user system or program in a multitasking system.

  • Multiprocessing: Using multiple processors to execute tasks simultaneously.

  • Multithreading: A method where different parts of a program are executed simultaneously.

  • Multi-access: Allowing multiple users access to a system or resource at the same time.

  • Memory Leak: When a program does not release the memory it was allocated, leading to reduced available memory.

  • Address Binding: The process where the OS converts a logical address into an actual physical address.

  • Swapping / Paging: The process of moving data between RAM and secondary memory to manage limited RAM resources.

  • Virtual Memory: A memory management technique where the OS uses secondary memory to extend the available RAM.

  • Scheduling: The method used by the OS to manage the order in which processes are executed.

  • Task Scheduler: A tool that allows the OS to create and manage tasks at specific times.

  • Interrupts: A signal from a device or program that stops the current task and prompts the OS to decide the next action.

  • Device Driver: Software that allows the OS to communicate with hardware devices.

  • Polling: A method where the CPU periodically checks the status of devices to determine if they need attention.

  • Dedicated OS: An OS specifically designed for a particular type of device, such as a mobile device.

  • Abstraction: The process of hiding complexity to focus on essential aspects.

  • Complexity Hiding (Examples): Using device drivers to avoid the OS needing to know the technical details of hardware.

  • Virtual memry - hides phyicssla address from the user and software while allowing OS to allocate memory space currently available.

    Java virtual machine - allows programs coded in java to be run even in the hardware doesnt understand Java directly

  • OS: Main functions: recognising input from a keyboard, sending output to the display, warranting that different applications running at the same time do not interfere with each other. Providing a platform on top of which application software can function.

  • Input devices - device drivers hide the hardware complexity form the users and other software

    Drive letters - indicate the type of storage of a device and hides the complexity of the hardware from the users.

  • Shortest job first scheduling - A scheduling algorithm in which the shortest jobs are run before longer tasks

    Multilevel queue scheduling - a scheduling algorithm in which tassk are sorted into priority q ueoes where all tasks in the higher

    In a multi user system, the OS has to make sure taht all the users are authorized ot be in the system and has certain permissions to do tasks.

Sample Questions:
  1. State some main tasks of the operating system.

    • Manages resources, allocates memory, manages input/output devices, runs applications, handles interrupts, and maintains security and user accounts.

  2. What is a resource in a computer system?

    • A resource can be any hardware or software component that is necessary for the functioning of computer processes, such as CPU time, memory, or I/O devices.

  3. Explain why the problem of resource allocation is complex.

    • Resource allocation is complex because it involves prioritizing different processes, handling conflicts, optimizing system performance, and ensuring fairness while managing limited resources.

  4. Describe an example of abstraction relating to resource allocation.

    • The OS provides a logical representation of physical memory through virtual memory, allowing programs to access more memory than physically available without needing to manage the physical details.

  5. What is fragmentation?

    • Fragmentation refers to the condition where memory becomes inefficiently used, with small gaps between allocated memory blocks that cannot be used by new processes.

  6. Explain how a PC can run processes which are larger than the available RAM.

    • By using virtual memory, the OS swaps parts of a program or data between RAM and secondary memory, making it possible to execute processes larger than the physical RAM.

  7. What is the difference between mainframe computers and supercomputers?

    • Mainframes handle bulk data and multiple I/O devices, while supercomputers perform large and complex mathematical calculations.

  8. Outline two operating system resource management techniques.

    • Swapping/Paging: Moving data between RAM and secondary memory.

    • Scheduling: Managing the order in which processes are executed.

  9. Describe the difference between physical addresses and logical addresses.

    • A physical address is the actual location in memory, while a logical address is used by the program and is converted to a physical address by the OS.

  10. Describe the difference between interrupts and polling.

    • Interrupts are signals that prompt the OS to handle an event, while polling involves the CPU repeatedly checking devices to determine if they need attention.

  11. Outline the process of priority scheduling.

    • The OS assigns a priority to each task, and tasks are executed based on their priority level, with higher-priority tasks being executed first.

  12. What is an advantage to using a dedicated OS for a mobile device?

    • A dedicated OS is optimized for the specific hardware and usage patterns of the device, resulting in better performance and power efficiency.

robot