




















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
A comprehensive exploration of operating systems, delving into their essential aspects, functions, and the development of their types over time. Topics covered include process management, memory management, storage system management, user communication, hardware abstraction, security, and the core features required for modern operating systems to meet future needs. The document also discusses the microkernel architecture and its benefits, as well as the increasing importance of virtualization, security enhancements, iot support, enhanced user experience, cloud integration, and ai integration in contemporary operating systems.
Typology: Papers
1 / 60
This page cannot be seen from the preview
Don't miss anything!
PROGRAM TITLE: BTEC Computing UNIT TITLE: Operating system ASSIGNMENT NUMBER: 1 ASSIGNMENT NAME: Operating system SUBMISSION DATE: 01/12/ DATE RECEIVED: 01/10/ TUTORIAL LECTURER: Mr. Dao Viet Phuong WORD COUNT: 6743 STUDENT NAME: Nguyen Dac Trung Phuong STUDENT ID: BKC MOBILE NUMBER: +
Summative Feedback:
The computer operating system (OS) is a crucial and indispensable component in every modern electronic device. It plays a central role in managing and coordinating all the resources and functions of a computer, from memory and file management to interactions with users and applications. The operating system is the fundamental platform on which all applications and services operate. In this assignment, we will explore various essential aspects of the computer operating system, from basic operational principles to common types of operating systems, knowledge about resource management, the boot process, and related security issues. We will also examine the development and evolution of operating systems over time, along with its significant role in the field of information technology and our daily lives.
1. Overview about Operating System 1.1 What is an operating system? An operating system is a hardware management program for computers. It provides a platform for application programs and serves as an intermediary for communication between users and hardware. Functions of the operating system:
Operating systems provide file systems for organizing and storing data on storage devices. They manage files, directories, and file permissions, making it easier for users and applications to store and retrieve information. Device Management: The OS interacts with input/output devices (e.g., keyboards, mice, printers) and manages communication with external hardware. Device drivers enable the operating system to control different types of hardware without applications needing to understand the specifics of each device. User Interface: Operating systems provide a user interface that allows users to interact with the computer. This can be a command-line interface (CLI) or a graphical user interface (GUI), making it easier for users to execute commands and run applications. Security: Operating systems enforce security policies and provide mechanisms to protect the system and user data. This includes user authentication, access control, and encryption. Error Handling: Operating systems handle errors that may occur during the execution of programs or due to hardware issues. They provide error messages and logging mechanisms to help diagnose and troubleshoot problems. 1.3 Functions of operating system An OS provides a set of essential functions to manage and coordinate various aspects of a computer system, including the followings: Process Management: Process Scheduling: The OS determines the order in which processes are executed, allocating CPU time to each process. Process Creation and Termination: The OS creates, suspends, and terminates processes as needed. Memory Management:
Memory Allocation: Allocates and deallocates memory space for processes and ensures efficient use of available RAM. Virtual Memory: Manages virtual memory, allowing processes to use more memory than physically available. File System Management: File Creation, Deletion, and Manipulation: Manages files on storage devices, including creating, deleting, and organizing files and directories. File Access Control: Controls access to files and ensures data integrity and security. Device Management: Device Drivers: Controls communication between the OS and hardware devices by using device drivers. Input/Output Management: Handles input and output operations and provides an interface for user and application interactions. Security and Protection: User Authentication: Controls access to the system by requiring users to log in with valid credentials. Authorization: Manages permissions to ensure that users and processes have appropriate levels of access. Data Encryption: Provides mechanisms to secure data on storage and during communication. User Interface: Command-Line Interface (CLI) or Graphical User Interface (GUI): Provides a way for users to interact with the computer system. Networking: Network Protocol Support: Facilitates communication between different devices on a network. Network Configuration: Manages network settings and connections. Error Handling:
processors know how long a job will take while it is in the queue.
Advantages Disadvantages
Each duty is given some time to complete so that everything runs well. Because they share a single machine, each user receives CPU time. Multitasking systems are another name for these systems. The task can be assigned to a single person or to several users. The time it takes for each task to complete is referred to as quantum. When this time interval expires, the OS moves on to the next job. (Types of Operating Systems, n.d.)
2. The evolution of the Operating System The development process of the operating system can be divided into 4 stages: 2.1 Stage 1 (1945 - 1955) In the mid-1940s, Howard Aiken from Harvard University and John von Neumann from Princeton University successfully used vacuum tubes to build a computer. Despite its large size and the use of up to 10,000 vacuum tubes, this computer had a very slow speed compared to modern computers. For this computer, they used an absolute machine language for programming, often using a control panel to perform basic functions. Programming languages and operating systems were not yet known at this time. In the early 1950s, punched cards emerged, and programs could be written on cards instead of a control panel.
2.2 Stage 2 (1955 - 1965) In the mid-1950s, the advent of semiconductor devices completely changed the overall landscape. Computers now became more reliable and were distributed to customers. This marked the first clear division between designers, builders, operators, programmers, and maintainers. To perform a task (a program or a set of programs), programmers first wrote the program on paper (in assembly language or FORTRAN), then punched holes on cards, and finally fed the cards into the computer. After execution, the results were printed on a printer. The batch processing system was introduced, where requests to be executed were stored on tape, and the system would read and execute them sequentially. Subsequently, it would record the results on output tape, and users would take the output tape for printing. Batch processing systems operated under the control of a special program, a precursor to later operating systems. The programming languages used during this period were primarily FORTRAN and assembly language. 2.3 Stage 3(1965 – 1980) During this period, computers were widely used in both scientific and commercial applications. The IBM 360 was the first computer to use integrated circuits (IC). This innovation significantly reduced the size and cost of computer systems, making computers more accessible. Peripheral devices for computers became increasingly numerous, and control operations became more complex. Operating systems were introduced to coordinate, control operations, and handle device conflicts. Operating system programs were extensive, consisting of millions of lines of assembly language code and developed by thousands of programmers Subsequently, the concept of multitasking operating systems emerged. The CPU no longer had to wait for input and output operations to complete. Memory was divided into multiple partitions, each assigned a different job. When one job was waiting for input or output, the CPU would process the remaining jobs. However, when multiple jobs were present in memory simultaneously, a mechanism was needed to protect against interference between jobs. Operating systems also implemented spooling.
Software Support : The operating system provides services and libraries for other applications and software. This helps applications run smoothly and be compatible across various devices. Peripheral Device Coordination : The operating system enables peripheral devices such as printers, keyboards, mice, and webcams to work together seamlessly. System Configuration : The operating system allows users to customize system settings to meet their specific needs. (Computer Basics: Understanding Operating Systems, n.d.)
1. Memory management 1.1 Definition Computer memory is just like the human brain. It is used to store data/information and instructions. It is a data storage unit or a data storage device where data is to be processed and instructions required for processing are stored. It can store both the input and output can be stored here. (Computer Memory, n.d.) 1.2 Primary memory management The primary memory (a.k.a main memory) is the key component for operations and processing in modern computer systems. The main memory can be thought of as an array of bytes or words, each with its own address. When compared to input/output devices, it is the location where data is kept for quick access by the CPU. The CPU retrieves instructions from main memory. DMA-enabled input/output devices read and write data in main memory as well. The main memory often comprises devices that the CPU may directly address. When the CPU, for example, reads data from a disk, the data is transported to memory via input/output system calls. (What Is Computer Memory?, n.d.)
A process must be mapped to absolute addresses and loaded into main memory before it can be run. During program execution, the system accesses the program's instructions and data in main memory. Even when a process terminates, the data stays in memory until another process overwrites it. Some processes are stored in memory to improve the functioning of the CPU and the performance of the computer. Because of the variety of memory uses, there are several memory management systems, and the efficacy of algorithms varies depending on the circumstance. Many factors influence the selection of an algorithm for a system, particularly the system's hardware. 1.3 Secondary memory management A computer system's primary goal is to execute programs. Throughout the execution process, programs and their access data must be kept in main memory. However, the primary memory is insufficient to store all data and applications, and data will be destroyed if power is disconnected. Secondary storage is available in modern computer systems. Most computers store programs and data on drives. Until they are run, almost all programs, including compilers, assemblers, procedures, editors, and formats, are kept on disks. They are then loaded into main memory and store data and processing results on drives. As a result, a disk management system is essential for a computer system.
There are two types of address binding: compile-time (static binding) and load- time (dynamic binding). Dynamic binding allows for flexibility but incurs some runtime overhead. Memory Protection : Memory protection mechanisms prevent a program from accessing memory that does not belong to it. This ensures the integrity of the operating system and other concurrently running programs. Access control bits, like read, write, and execute permissions, are associated with each memory segment. Memory Deallocation : When a program terminates or no longer needs a particular segment of memory, the operating system deallocates that memory to make it available for other processes. In languages like C or C++, explicit memory deallocation is often performed using functions like free(). Virtual Memory : Virtual memory allows a program to use more memory than is physically available by swapping data between RAM and disk storage. This provides the illusion to the program that it has a large contiguous block of memory, even if parts of it are stored on disk. Page Replacement Algorithms : In virtual memory systems, when physical memory is full, the operating system must decide which pages to keep in RAM and which to swap out to disk. Page replacement algorithms (e.g., LRU - Least Recently Used) are used to make efficient decisions on which pages to keep in RAM. Fragmentation : Fragmentation occurs when memory is allocated and deallocated, leading to small, non-contiguous blocks of free memory. To combat fragmentation, techniques like compaction (rearranging memory to place free blocks together) may be employed.
2. Process Schedulers As mentioned above, choosing an algorithm for a system is predetermined by many factors, especially the hardware of the system. Here are some Process Scheduling Algorithms used in an Operating System: FCFS - First Come First Serve All processes are equal, the one that arrives first occupies the resource until the process is completed. Round Robin Each process in this algorithm is assigned a "quantum," which is a unit of time. This time is used for the process to complete its task. If the process is still running after this time expires, the CPU is interrupted and switched to the next process. The next process then moves from one quantum to the next until the process returns to the first quantum. CPU switching is performed, and the next process takes over if a process completes or is stopped before its quantum expires. SJF - Shortest Job First Scheduling In this scheduling algorithm, the system selects the process with the shortest execution time from the queue for the next execution. If two processes have the same execution time, they will use the FCFS schedule to break the tie, and the remaining part of the process will be scheduled using SJN (Shortest Job Next)
3. Examples of Scheduling Algorithm use in an operating system Some concepts in Process Scheduling Algorithms: Arrival time : the time the process arrives in the queue Burst time : the maximum time a process occupies the CPU Complete time : The time the process completes Turnaround time = complete time - arrival time Waiting time = Turnaround time - Burst Avg waiting time = Waiting time / number of processes