6.1.1 Identify the resources that need to be managed within a computer system The resources that a system needs is the: - Software - Hardware - Trained personnel - Infrastructure The operating system is used to manage all these. RAM (Primary Memory) is where all data and programs that are being processed are kept, without it the system will need to use secondary storage through virtual memory, which is much slower. If virtual memory is insufficient, the program/data just will not be loaded. Typically 1-16 GB, powers of 2. Secondary Storage (HDD/SDD/Optical) is where data can be stored if power is lost, without it there is no place to 'save' work as the RAM is volatile and data might be lost. Without it, the OS can't use virtual memory if the RAM fills up. It limits how much data could be kept. Typically HDD is 500 GB, 1TB or 2 TB. SDD is 256 or 512 GB. Optical is 650MB. Processor (Processor Speed) does all the calculations in a computer system, it is measured by processing speed (how many calculations can be done per second). 1 GHz is 1 billion calculations per second. With a limitation of this the processor will take longer to perform tasks. Usually 1 to 3.2 GHz. The Processor (core), every processor has at least 1 ALU or core. 2 ALUs can do 2 operations at once. With only one core, less calculations can be done at the same time, it affects how many tasks a system can cope with simultaneously. Cache contains the instruction/data that the CPU is likely to need next from RAM, it massively speeds up processing. Without it the CPU will have to wait for instructions or data to be fetched from RAM and the system will be slower. Typically 1 to 128 MB. Bandwidth (Network Transmission) is a measurement of how much data can be sent at the same time in a certain time frame. Less bandwidth means data will take longer to move between two points and it affects how long a data can be processed in its entirety. Bps is bits per second, Broadband usually 16-100 Mbps, LAN is up to 1 Gbps. Memory bandwidth is the rate at which data can travel from RAM to the processor and vice versa. Screen Resolution is the measurement of number of pixels in height x width of display, without a good resolution, the display is pixelated and unclear, the file size is smaller but the quality is poorer. Typically 1024 x 768, 1366 x 768, 1920 x 1080, 4096 x 2304. Sound processor is the processor that performs sound reproduction, allowing the CPU to do other calculations. Can contain a bank of sampled sounds to perform better quality audio. Without this, CPU is taxed with having to process sounds, slowing down the overall system. Overall quality is lower in the system. It is usually done by Sound Cards. Graphics Processor does complex graphic processing, without it the CPU will have to do it, slowing down the system. This is commonly found through Nvidia or ATI graphics cards. 6.1.2 Evaluate the resources available in a variety of computer systems Mainframes are thousands of cores, they have vast amounts of primary and secondary memory, they have very powerful CPU power with an array of disks that can handle tasks concurrently. They are usually used for large-scale transaction processing, largescale statistics processing. Servers/Server farms are many PCs running in parallel, they are used to 'serve' networks. PCs are a single processor, with multiple cores. Used by schools and companies where portability is not needed. Tablets and cell phones are also a single processor with multiple cores, primary memory is usually 1-3 GB they use micro SD cards for secondary memory and are much cheaper. Supercomputers are one large processor that is extremely fast and expensive and they focus on mathematical calculations, they are used for weather forecasting, molecular modelling etc. They are suitable for one huge task. Mainframes have very powerful CPU power, situated AC rooms, with vast amounts of RAM, arrays of disks, they can run a lot of input and generate a lot of output, they deal with more bulk data than supercomputers, good for handling a large amount of small tasks. 6.1.3 Identify the limitations of a range of resources in a specified computer system Batch processing takes tasks together as a group and then run them one at a time in a queue without any user intervention (Queueing downloads before sleeping). Multi programming results from this. Multi-programming is where two or more programs are loaded into main memory to be executed. If the current program is performing something that doesn't need the CPU (waiting for input for e.g), the next process is loaded to minimize idle time. Multi-tasking is where each process is given a set amount of time, and each process regardless of its size will be given the same amount of processing time. The time intervals are fixed in this case. Two or more processes are loaded into main memory -> it runs one at a time -> BUT if current program is performing something that doesn’t require the CPU (waiting for input) it gives control to the next program -> this minimizes time that the CPU waits and does nothing 6.1.4 Describe possible problems resulting from limitations in the resources in a computer system User time is wasted if processor speed is slow or primary memory is too small. Multiuser systems could be slow if too many users try to access it on the same machine or the same network. A processor is a circuit that can perform operations on input and input whilst a core is the part of the processor that reads and executes functions. Multi-core systems contain one CPU with multiple cores, the one CPU can execute multiple operations at the same time, which increases overall speed of program execution. However, the speed depends on the program that allows the cores to work in parallel. Adv: Faster, More energy-efficient Disadv: Not proportionally more speed, not every OS supports multi-core Multi-processor systems mean that there is more than one processor in the same system will allow it to be faster. Different executions can be given to different processors. Adv: If one processor is not working there are backups, more battery efficient, faster Disadv: Coordination of processors is complex, idle time for some processors waiting for others, need large main memory so more expensive 6.1.5 Explain the role of the operating system in managing memory, peripherals and hardware interfaces The OS uses 'drivers' and 'translation programs' so that the other programs can control and use peripheral devices. The OS does file management, transferring files between main memory and secondary storage to manage the space. Memory management is where the OS allocates the use of RAM to processes that request it. Virtual memory is a feature of the operating system that allows a computer to compensate for shortages of physical memory by temporarily transferring pages of data from RAM to disk storage. The OS manages secondary storage by providing access methods to these structures. The OS also provides a user interface, either a CLI of a GUI. The OS does time-slicing, where a time-slice is a set amount of time that each program (or user in a multi-user system) is allocated. The OS also functions as an interrupt handler 6.1.7 Outline OS resource management techniques Nearly all operating systems have an application called a task scheduler, which caries out specific tasks at specific times like back ups or virus scans. The process scheduler is part of the OS and it decides which task should be admitted to the CPU next (the next process to run). There can be short, medium and long term schedulers. Common scheduling systems of the CPU include: - First come first served - Shortest job first - Priority scheduling - Round robin Policies are ways to choose which activities to perform, they are what is to be done while the mechanism determines how it will be done. When more than one user has access to a personal computer and so the OS has to create each user account to access the computer, this can also be applied to large networks. The user account defines the privileges and rights of the user. Virtual memory of an OS allows for a computer to compensate losses of physical memory by temporarily transferring pages of data from RAM to disk storage. Only vital data should be kept in the RAM and the rest in secondary memory. Swapping is where a processor block of a program can be swapped out of RAM into secondary memory and then later back into RAM to continue their execution. Paging is a key component of virtual memory implementation and it allows the computer to use secondary storage as if it were RAM. It can split the program into processes that can be put into RAM separately and not in order and then reassembled after it is executed (this takes time). The OS copies as much data as it can into RAM and leaves the rest on the hard disk. Each program is assigned a 'logical memory' which causes them to think they have all the space in RAM, when in reality a lot of processes are in the hard disk. When data from the hard disk is needed by the RAM, it exchanges some data in ram (a page) for it. It works well but doing this a lot can make the computer slower and is known as 'thrashing'. An Interrupt is a signal from a device or program that causes the OS to stop what it is doing and tells it what to do next instead. Polling is a periodic check of a device by the central device to sample its status. Easier to implement but is less efficient for the CPU. Polling is like when you stare at your phone waiting for a message but an interrupt is when your phone sends you a notification when the message arrives. 6.1.8 Discuss the advantages of producing a dedicated operating system for a device There are two methods of developing a custom OS: - Taking an existing system and adapting it (End user will be more familiar with it, but it may not be optimized for its full potential purpose) - Design the OS to fit the device exactly (The OS will be optimized and efficient, but it can't be used on other devices and is more expensive) An optimized OS will have: - Good security - Customizability - Modifiable priorities (better suited to the audience, A custom OS can cut out some aspects of the OS that are not needed for that device, also reducing the size of the OS) - Faster on the device 6.1.9 Outline how an operating system hides the complexity of the hardware from users and applications Users and applications don’t see the hardware directly, only viewing it through the OS. The OS hides unnecessary complex detail from them, this is called abstraction. Using GUIs, clickable folder icons, changing virtual memory using a slider etc. are examples of abstraction. This abstraction doesn't let users see changes in hardware and makes related devices (like hard and floppy disks) seem the same.