This document contains the syllabus and contents for an Operating System Concepts course. The syllabus provides details on class time, location, textbook, and grading. The contents cover 11 chapters on operating system concepts including computer system structures, processes, memory management, and file systems. The introduction discusses the role of operating systems and how they balance convenient use and efficient operation.
The document provides an overview of operating systems, including their goals and history. It discusses early batch systems and how they evolved into time-sharing systems with multiprogramming and virtual memory to better utilize hardware. Personal computing systems were designed for single users with portable devices. Parallel and distributed systems leverage multiple processors, and real-time systems must meet timing constraints.
This document provides an introduction to operating systems, including a definition of an operating system, early operating systems like simple batch systems and multiprogrammed batch systems, time-sharing systems, personal computer systems, parallel and distributed systems, and real-time systems. It discusses the goals and components of an operating system, and why studying operating systems is important.
This document provides an overview of operating systems, including early batch systems, multiprogrammed systems, time-sharing systems, personal computer systems, parallel and distributed systems, and real-time systems. It defines an operating system as a program that acts as an intermediary between users and computer hardware to simplify running applications efficiently. The goals of an operating system are to simplify user programs, efficiently use hardware, allow sharing of resources, improve portability and versatility, and provide security and protection.
This document provides an overview of real-time operating systems (RTOS) and FreeRTOS. It discusses the history and development of real-time systems from the 1940s to present day. Key aspects covered include the differences between soft, hard, and firm real-time systems. The document also examines RTOS components like tasks, synchronization, and inter-task communication. It provides examples of commercial and open source RTOS like VxWorks, QNX, FreeRTOS, and others.
The document provides an introduction to operating systems, describing their purpose and goals. It discusses the components of a computer system including hardware, operating systems, and application programs. It then covers the functions of an operating system as an extended machine and resource manager. The document outlines the evolution of operating systems through five generations and some key events. It also discusses concepts such as multiprocessing, virtual memory, real-time systems, and distributed systems.
CSE 370 - Introduction to Operating SystemsDev Khare
The document provides an overview of operating systems, including:
1) Their purpose is to provide an efficient and convenient environment for executing user programs while abstracting hardware details and sharing resources.
2) They have evolved from dedicated single-user systems in the 1940s to modern networked and mobile systems, driven by hardware advances.
3) Key concepts include processes, system calls, and services like CPU scheduling, memory management, and file systems.
The document provides an introduction to operating systems, describing their purpose as intermediaries between users and computer hardware. It discusses the goals of operating systems to make computers convenient and efficient to use. Components like hardware, operating systems, and application programs are described. Key functions of operating systems like acting as an extended machine and resource manager are outlined. The evolution of operating systems from early batch systems to modern personal computers is summarized.
The document discusses real-time operating systems and concepts. It defines an operating system and real-time systems, distinguishing between soft and hard real-time systems. Popular real-time operating systems include VxWorks, QNX and Linux. Real-time operating systems provide mechanisms for real-time scheduling of tasks with deterministic timing. The architecture of a real-time operating system includes tasks, scheduling, interrupts and kernel objects like semaphores. Key differences from general purpose OS are determinism, preemptive multitasking and priority-based scheduling in real-time OS.
The document provides an overview of operating systems, including their goals and history. It discusses early batch systems and how they evolved into time-sharing systems with multiprogramming and virtual memory to better utilize hardware. Personal computing systems were designed for single users with portable devices. Parallel and distributed systems leverage multiple processors, and real-time systems must meet timing constraints.
This document provides an introduction to operating systems, including a definition of an operating system, early operating systems like simple batch systems and multiprogrammed batch systems, time-sharing systems, personal computer systems, parallel and distributed systems, and real-time systems. It discusses the goals and components of an operating system, and why studying operating systems is important.
This document provides an overview of operating systems, including early batch systems, multiprogrammed systems, time-sharing systems, personal computer systems, parallel and distributed systems, and real-time systems. It defines an operating system as a program that acts as an intermediary between users and computer hardware to simplify running applications efficiently. The goals of an operating system are to simplify user programs, efficiently use hardware, allow sharing of resources, improve portability and versatility, and provide security and protection.
This document provides an overview of real-time operating systems (RTOS) and FreeRTOS. It discusses the history and development of real-time systems from the 1940s to present day. Key aspects covered include the differences between soft, hard, and firm real-time systems. The document also examines RTOS components like tasks, synchronization, and inter-task communication. It provides examples of commercial and open source RTOS like VxWorks, QNX, FreeRTOS, and others.
The document provides an introduction to operating systems, describing their purpose and goals. It discusses the components of a computer system including hardware, operating systems, and application programs. It then covers the functions of an operating system as an extended machine and resource manager. The document outlines the evolution of operating systems through five generations and some key events. It also discusses concepts such as multiprocessing, virtual memory, real-time systems, and distributed systems.
CSE 370 - Introduction to Operating SystemsDev Khare
The document provides an overview of operating systems, including:
1) Their purpose is to provide an efficient and convenient environment for executing user programs while abstracting hardware details and sharing resources.
2) They have evolved from dedicated single-user systems in the 1940s to modern networked and mobile systems, driven by hardware advances.
3) Key concepts include processes, system calls, and services like CPU scheduling, memory management, and file systems.
The document provides an introduction to operating systems, describing their purpose as intermediaries between users and computer hardware. It discusses the goals of operating systems to make computers convenient and efficient to use. Components like hardware, operating systems, and application programs are described. Key functions of operating systems like acting as an extended machine and resource manager are outlined. The evolution of operating systems from early batch systems to modern personal computers is summarized.
The document discusses real-time operating systems and concepts. It defines an operating system and real-time systems, distinguishing between soft and hard real-time systems. Popular real-time operating systems include VxWorks, QNX and Linux. Real-time operating systems provide mechanisms for real-time scheduling of tasks with deterministic timing. The architecture of a real-time operating system includes tasks, scheduling, interrupts and kernel objects like semaphores. Key differences from general purpose OS are determinism, preemptive multitasking and priority-based scheduling in real-time OS.
This document describes the syllabus for a course on operating systems. It includes 5 units that will cover topics like process management, CPU scheduling, deadlocks, memory management, file systems, and system calls. The course objectives are to introduce operating system concepts and design issues. Students will learn how to control access to computers and files, recognize user problems, and understand how programming languages, operating systems, and architectures interact.
Computer operating system and network modelrEjInBhandari
This document provides an overview of operating systems and network topologies. It discusses the history and evolution of operating systems from the 1940s to present. Key developments include the introduction of batch processing systems in the 1950s, multi-tasking systems in the 1960s, and graphical user interfaces in the 1980s. The document also defines different types of operating systems such as single-user, multi-user, real-time, and time-sharing systems. Additionally, it describes various network topologies like bus, star, ring, mesh and hybrid along with their advantages and disadvantages.
This document contains the syllabus for an Operating Systems course. It outlines the textbook and references used in the course. It also summarizes the topics that were covered in Lecture 3, including the different types of operating systems such as batch, multiprogramming, time-sharing, multiprocessing, distributed, network, real-time, and embedded operating systems. Examples and characteristics of each type were provided. The document concluded with noting the topics to be covered in the next lecture.
The document introduces operating systems, describing their basic roles and software and hardware components. It discusses the major subsystem managers in an operating system and their functions. It also outlines the evolution of operating systems over time from batch systems to current systems supporting multimedia, internet access and client/server computing. Current trends include object-oriented design, reorganized kernels, and multiprocessing configurations.
An operating system acts as an interface between hardware and users, providing abstractions to simplify application design. It performs core functions like process and resource management, protection between processes, and communication between processes. Operating systems have evolved over several phases as hardware has become cheaper and more powerful, moving from single-user batch processing systems to time-sharing systems to personal computing systems and now distributed and cloud-based systems.
This document provides an overview of an operating systems course, including its aims, outline, recommended reading, and introductory content. The key points are:
1. The course aims to explain operating system structure and functions, illustrate concepts with examples, and prepare students for future courses. Students will learn about CPU scheduling, processes, memory management, I/O, protection, and case studies of Unix and Windows.
2. The course outline covers introductions to operating systems, processes and scheduling, memory management, I/O and device management, protection, filing systems, and case studies of Unix and Windows NT.
3. The recommended reading includes textbooks on concurrent systems, operating system concepts, and case studies
This document outlines the syllabus for an operating systems course. It includes the textbook, references, topics to be covered in lecture 2 such as process management, memory management, file management, and device management. Lecture 2 defines processes, discusses how the operating system manages memory allocation and paging, file systems, I/O devices, security, and user interfaces. Popular operating system classes are also listed, and the topics planned for the next lecture are noted.
very helpful presentation for students who are dealing with network and operating system have a brief introduction about linux and installation of ubuntu and windows Server.I hope you like it.
Bedtime Stories on Operating Systems.pdfAyushBaiswar1
The document provides an overview of processes and process scheduling in operating systems. Some key points:
- A process is a program in execution that is represented by a process control block containing its state, scheduling information, and other data.
- There are three main scheduling queues: job queue, ready queue, and device queues. Scheduling algorithms select processes from the ready queue for CPU execution.
- The main scheduling algorithms discussed are first-come, first-served; shortest job first; and priority scheduling. Shortest job first can increase throughput but requires predicting process lengths.
- Context switching involves saving the state of the current process and loading the next process. The goal of scheduling is to maximize CPU and
This document provides an introduction to operating systems and covers several key topics:
1. It describes the architecture and evolution of operating systems including monolithic, layered, microkernel, and exokernel designs as well as the progression from batch processing to timesharing, personal computing, and distributed systems.
2. The functions of operating systems are discussed including program execution, input/output, resource allocation, and error detection.
3. Examples of operating systems are given such as Linux, Windows, and mobile phone OSs.
4. Components of a computer system are defined including the hardware, software, system programs, and application programs.
5. Concepts like multiprocessing, multitasking, shells
The document discusses embedded computing systems and outlines some key points:
- Embedded systems are part of larger systems that perform specific functions in constrained, reactive environments using a combination of hardware and software.
- They have real-time requirements and challenges include high complexity, distributed networks, and meeting deadlines with increasing functionality.
- Embedded systems come in many forms, from automotive and industrial control systems to wireless sensor networks and systems within the human body.
An embedded system is a computer system designed to perform one or a few dedicated functions, often with real-time computing constraints. Embedded systems are found in many devices such as mobile phones, cars, appliances, and toys [Paragraph 1]. They are typically specialized for their dedicated functions and have constraints on power, size, and cost. Examples of embedded systems include anti-lock braking systems, digital cameras, medical devices, and factory controllers [Paragraph 2]. A key characteristic of embedded systems is that they interact continuously with their environment through sensors and actuators to perform their dedicated functions in real-time [Paragraph 3].
Introduction to Operating Systems: Function, Evolution, Different Types, Desirable Characteristics and features of an O/S, Operating Systems Services: Types of Services, Different ways of providing these Services – Utility Programs, System Calls.
This document provides an introduction to operating systems and real-time operating systems (RTOS). It begins with an invocation poem by Rabindranath Tagore, then defines what an operating system is, including its role in managing computer resources and providing an interface for users. The document discusses the evolution of operating systems over different generations and the basic requirements of OS like usability, adaptability, and cost. It also outlines the components of operating systems like the kernel, process scheduler, and memory manager. Finally, the document defines what a real-time system is and compares different types like hard, firm, and soft real-time systems. It lists common components and features of RTOSs and provides examples of commercial RTOSs
The document provides an overview of operating systems, including definitions, components, functions, and types. It discusses what an operating system is, its main components, and its key roles such as managing hardware resources, providing user interfaces, running application programs, and protecting system resources from unauthorized access. Different types of operating systems are also covered, from early batch processing and time-sharing systems to modern desktop, real-time, distributed, and mobile systems.
The document discusses operating systems, defining them as the interface between computer hardware and users. It describes the functions, major functionalities, components, and conceptual view of a computer system with an operating system. The document also covers the history, types (batch, time-sharing, distributed, network, real-time), services, and examples of various operating systems.
This document provides an overview of different types of operating systems. It begins by defining an operating system and its core functions such as managing resources, memory, storage, and running applications. The major types discussed are batch, real-time, time-sharing, distributed, and network operating systems. For each type, the key characteristics, examples, and advantages/disadvantages are outlined. The document aims to inform readers about the different categories of operating systems and their basic features and purposes.
An operating system manages computer resources and acts as an interface between the user and hardware. It performs basic tasks like managing files, processes, memory and devices. There are different types of operating systems including batch, time-sharing, distributed, network, and real-time operating systems. Batch operating systems group similar jobs into batches while time-sharing systems allocate CPU time to tasks. Distributed systems communicate over a network and network operating systems manage resources and users over a private network. Real-time operating systems are used for applications with strict time constraints like medical or military systems.
An operating system is software that acts as an interface between computer hardware and users, allowing applications to run and perform tasks. The main functions of an operating system include process management, memory management, file management, device management, I/O system management, and security. The kernel is the central component of the operating system and enables communication between hardware and software. Mainframe systems evolved from early batch systems with no user interaction to time-sharing systems that allowed for simultaneous multi-user interaction through rapid switching between users.
This document provides an overview of cloud computing, including definitions, architecture, deployment models, and service models. Cloud computing allows users to access applications and store data over the internet rather than locally. There are four deployment models - public, private, hybrid, and community clouds. The three main service models are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). IaaS provides fundamental computing resources, PaaS provides development platforms, and SaaS provides software applications delivered over the internet.
Overview of System Integration and Architecture.pptxODINARARCH
The document discusses system integration and architecture. It defines key concepts like interoperability, data flow, and middleware. Integration allows different components to work as a unified whole by facilitating communication and data exchange. Efficiency is improved through integration, leading to benefits like cost savings, increased productivity, and competitive advantage. Challenges include dealing with complexity when integrating multiple interconnected systems, and ensuring data security and standardization. System architecture provides a blueprint that defines the components, relationships, and design principles of a system.
More Related Content
Similar to Operating System Concepts ( PDFDrive ).pptx
This document describes the syllabus for a course on operating systems. It includes 5 units that will cover topics like process management, CPU scheduling, deadlocks, memory management, file systems, and system calls. The course objectives are to introduce operating system concepts and design issues. Students will learn how to control access to computers and files, recognize user problems, and understand how programming languages, operating systems, and architectures interact.
Computer operating system and network modelrEjInBhandari
This document provides an overview of operating systems and network topologies. It discusses the history and evolution of operating systems from the 1940s to present. Key developments include the introduction of batch processing systems in the 1950s, multi-tasking systems in the 1960s, and graphical user interfaces in the 1980s. The document also defines different types of operating systems such as single-user, multi-user, real-time, and time-sharing systems. Additionally, it describes various network topologies like bus, star, ring, mesh and hybrid along with their advantages and disadvantages.
This document contains the syllabus for an Operating Systems course. It outlines the textbook and references used in the course. It also summarizes the topics that were covered in Lecture 3, including the different types of operating systems such as batch, multiprogramming, time-sharing, multiprocessing, distributed, network, real-time, and embedded operating systems. Examples and characteristics of each type were provided. The document concluded with noting the topics to be covered in the next lecture.
The document introduces operating systems, describing their basic roles and software and hardware components. It discusses the major subsystem managers in an operating system and their functions. It also outlines the evolution of operating systems over time from batch systems to current systems supporting multimedia, internet access and client/server computing. Current trends include object-oriented design, reorganized kernels, and multiprocessing configurations.
An operating system acts as an interface between hardware and users, providing abstractions to simplify application design. It performs core functions like process and resource management, protection between processes, and communication between processes. Operating systems have evolved over several phases as hardware has become cheaper and more powerful, moving from single-user batch processing systems to time-sharing systems to personal computing systems and now distributed and cloud-based systems.
This document provides an overview of an operating systems course, including its aims, outline, recommended reading, and introductory content. The key points are:
1. The course aims to explain operating system structure and functions, illustrate concepts with examples, and prepare students for future courses. Students will learn about CPU scheduling, processes, memory management, I/O, protection, and case studies of Unix and Windows.
2. The course outline covers introductions to operating systems, processes and scheduling, memory management, I/O and device management, protection, filing systems, and case studies of Unix and Windows NT.
3. The recommended reading includes textbooks on concurrent systems, operating system concepts, and case studies
This document outlines the syllabus for an operating systems course. It includes the textbook, references, topics to be covered in lecture 2 such as process management, memory management, file management, and device management. Lecture 2 defines processes, discusses how the operating system manages memory allocation and paging, file systems, I/O devices, security, and user interfaces. Popular operating system classes are also listed, and the topics planned for the next lecture are noted.
very helpful presentation for students who are dealing with network and operating system have a brief introduction about linux and installation of ubuntu and windows Server.I hope you like it.
Bedtime Stories on Operating Systems.pdfAyushBaiswar1
The document provides an overview of processes and process scheduling in operating systems. Some key points:
- A process is a program in execution that is represented by a process control block containing its state, scheduling information, and other data.
- There are three main scheduling queues: job queue, ready queue, and device queues. Scheduling algorithms select processes from the ready queue for CPU execution.
- The main scheduling algorithms discussed are first-come, first-served; shortest job first; and priority scheduling. Shortest job first can increase throughput but requires predicting process lengths.
- Context switching involves saving the state of the current process and loading the next process. The goal of scheduling is to maximize CPU and
This document provides an introduction to operating systems and covers several key topics:
1. It describes the architecture and evolution of operating systems including monolithic, layered, microkernel, and exokernel designs as well as the progression from batch processing to timesharing, personal computing, and distributed systems.
2. The functions of operating systems are discussed including program execution, input/output, resource allocation, and error detection.
3. Examples of operating systems are given such as Linux, Windows, and mobile phone OSs.
4. Components of a computer system are defined including the hardware, software, system programs, and application programs.
5. Concepts like multiprocessing, multitasking, shells
The document discusses embedded computing systems and outlines some key points:
- Embedded systems are part of larger systems that perform specific functions in constrained, reactive environments using a combination of hardware and software.
- They have real-time requirements and challenges include high complexity, distributed networks, and meeting deadlines with increasing functionality.
- Embedded systems come in many forms, from automotive and industrial control systems to wireless sensor networks and systems within the human body.
An embedded system is a computer system designed to perform one or a few dedicated functions, often with real-time computing constraints. Embedded systems are found in many devices such as mobile phones, cars, appliances, and toys [Paragraph 1]. They are typically specialized for their dedicated functions and have constraints on power, size, and cost. Examples of embedded systems include anti-lock braking systems, digital cameras, medical devices, and factory controllers [Paragraph 2]. A key characteristic of embedded systems is that they interact continuously with their environment through sensors and actuators to perform their dedicated functions in real-time [Paragraph 3].
Introduction to Operating Systems: Function, Evolution, Different Types, Desirable Characteristics and features of an O/S, Operating Systems Services: Types of Services, Different ways of providing these Services – Utility Programs, System Calls.
This document provides an introduction to operating systems and real-time operating systems (RTOS). It begins with an invocation poem by Rabindranath Tagore, then defines what an operating system is, including its role in managing computer resources and providing an interface for users. The document discusses the evolution of operating systems over different generations and the basic requirements of OS like usability, adaptability, and cost. It also outlines the components of operating systems like the kernel, process scheduler, and memory manager. Finally, the document defines what a real-time system is and compares different types like hard, firm, and soft real-time systems. It lists common components and features of RTOSs and provides examples of commercial RTOSs
The document provides an overview of operating systems, including definitions, components, functions, and types. It discusses what an operating system is, its main components, and its key roles such as managing hardware resources, providing user interfaces, running application programs, and protecting system resources from unauthorized access. Different types of operating systems are also covered, from early batch processing and time-sharing systems to modern desktop, real-time, distributed, and mobile systems.
The document discusses operating systems, defining them as the interface between computer hardware and users. It describes the functions, major functionalities, components, and conceptual view of a computer system with an operating system. The document also covers the history, types (batch, time-sharing, distributed, network, real-time), services, and examples of various operating systems.
This document provides an overview of different types of operating systems. It begins by defining an operating system and its core functions such as managing resources, memory, storage, and running applications. The major types discussed are batch, real-time, time-sharing, distributed, and network operating systems. For each type, the key characteristics, examples, and advantages/disadvantages are outlined. The document aims to inform readers about the different categories of operating systems and their basic features and purposes.
An operating system manages computer resources and acts as an interface between the user and hardware. It performs basic tasks like managing files, processes, memory and devices. There are different types of operating systems including batch, time-sharing, distributed, network, and real-time operating systems. Batch operating systems group similar jobs into batches while time-sharing systems allocate CPU time to tasks. Distributed systems communicate over a network and network operating systems manage resources and users over a private network. Real-time operating systems are used for applications with strict time constraints like medical or military systems.
An operating system is software that acts as an interface between computer hardware and users, allowing applications to run and perform tasks. The main functions of an operating system include process management, memory management, file management, device management, I/O system management, and security. The kernel is the central component of the operating system and enables communication between hardware and software. Mainframe systems evolved from early batch systems with no user interaction to time-sharing systems that allowed for simultaneous multi-user interaction through rapid switching between users.
Similar to Operating System Concepts ( PDFDrive ).pptx (20)
This document provides an overview of cloud computing, including definitions, architecture, deployment models, and service models. Cloud computing allows users to access applications and store data over the internet rather than locally. There are four deployment models - public, private, hybrid, and community clouds. The three main service models are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). IaaS provides fundamental computing resources, PaaS provides development platforms, and SaaS provides software applications delivered over the internet.
Overview of System Integration and Architecture.pptxODINARARCH
The document discusses system integration and architecture. It defines key concepts like interoperability, data flow, and middleware. Integration allows different components to work as a unified whole by facilitating communication and data exchange. Efficiency is improved through integration, leading to benefits like cost savings, increased productivity, and competitive advantage. Challenges include dealing with complexity when integrating multiple interconnected systems, and ensuring data security and standardization. System architecture provides a blueprint that defines the components, relationships, and design principles of a system.
The document discusses data link control and flow control protocols. It describes the key components of data link control including frame synchronization, flow control, error control, addressing, and link management. It then provides details on different types of flow control including stop-and-wait and sliding window approaches. It also covers error detection, error control techniques like ARQ, and specific ARQ protocols such as stop-and-wait, go-back-N, and selective reject. Finally, it discusses the HDLC protocol including its frame structure, station types, data transfer modes, and use of flags, address, control, information, and frame check fields.
This document provides an overview of a course on computer fundamentals. The course aims to give students an understanding of how computers work at the assembly level and introduce assembly language programming. Topics covered include the fetch-execute cycle, memory hierarchy, CPU components like the ALU and registers, number representation, and arithmetic and logical instructions. The course outline provides context on the history of computing and early computer designs to prepare students for future operating systems courses.
The document discusses HCI in the system software development lifecycle. It describes several key stages in the lifecycle including requirements specification, architectural design, detailed design, verification and validation. It also discusses usability engineering, iterative design and prototyping techniques, design rationale documentation approaches like IBIS and QOC notations, and capturing psychological design rationale through user testing. The overall goal is to integrate usability considerations throughout the entire software development process from requirements to implementation.
This document contains a quiz with multiple choice questions about data transmission terminology. It tests knowledge of key concepts like types of transmission media, the definition of transmission, common transmission impairments like noise and distortion, functions of signals, contexts of data communication, and examples of guided transmission media. It also asks to differentiate the transmission impairments of attenuation and distortion.
This document discusses concepts related to data transmission including analog and digital transmission. It defines data transmission as sending data over a communication medium between devices. It describes direct links between two devices and multipoint guided configurations with multiple devices sharing a medium. It also discusses analog and digital data and signals, and characterizes analog as continuous and digital as discrete. Finally, it outlines common transmission impairments like attenuation, distortion, and noise that can degrade signals over long distances.
This smart trash bin uses an ultrasonic sensor and servo motor to automatically open when an object is detected within 50 cm and remain open for 15 seconds before closing. It aims to make trash disposal more hygienic and efficient while reducing costs through automated operation controlled by an Arduino board. Materials used include an Arduino, ultrasonic sensor, servo motor, jumper wires, battery, and 9V battery connector.
Data transmission involves sending digital or analog data over a communication medium between computing networks. It relies on two key factors: the quality of the transmitted signal and the characteristics of the transmission medium such as bandwidth, cost, and ease of installation. Concepts and terminology in data transmission refer to the transmission path between a transmitter and receiver either through a direct link with no intermediate devices, or a multipoint guided configuration where more than two devices share the same transmission medium.
The system unit, or computer case, houses the main electronic components of a computer. It contains the motherboard, processor, memory, storage devices, ports, and power supply. The motherboard serves as the central circuit board to which these components connect. At the heart of the system unit are the processor and memory, which work together to process instructions and data and temporarily store active programs and information. Additional components like graphics cards, sound cards, and network adapters can be installed via expansion slots to add functionality to the system unit.
Database administrators use specialized software to store and organize data, including capacity planning, installation, configuration, database design, migration, performance monitoring, security, troubleshooting, backup and recovery. Network administrators manage an organization's network, keeping it operational and monitoring functions and operations. Security administrators install, administer, and troubleshoot security solutions to ensure network security and protect against unauthorized access.
An IP address uniquely identifies devices on a network. There are two types of IP addresses: static addresses that do not change and dynamic addresses that are temporarily assigned by a DHCP server. A gateway routes traffic between different subnets and networks when a computer does not have the direct route to a destination.
This document provides an overview of basic networking concepts. It defines a computer network and provides examples. It discusses the advantages of networking such as file sharing, resource sharing, communication and flexible access. It also describes networking components like network cards, cables, modems and hubs/switches. It outlines different types of networks including LAN, MAN, WAN and PAN. It explains network architectures like peer-to-peer and client-server. It defines common network topologies such as point-to-point, bus, star, ring, tree and mesh. Finally, it discusses network security and the importance of authorization and authentication.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
5. Introduction
5
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
What is an Operating System?
A basis for application programs
An intermediary between users and
hardware
Amazing variety
Mainframe, personal computer (PC),
handheld computer, embedded
computer without any user view
Convenient vs Efficient
6. Computer SystemComponents
OS – a government/environment provider
Application Programs
Operating System
Hardware
User User User
.................
CPU, I/O devices,
6
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
memory, etc.
compilers,
word processors,
spreadsheets,
browsers, etc.
7. UserView
7
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The user view of the computer varies by
the interface being used!
Examples:
Personal Computer Ease of use
Mainframe or minicomputer
maximization of resource utilization
Efficiency and fair share
Workstations compromise between
individual usability & resource utilization
Handheld computer individual usability
Embedded computer without user view
run without user intervention
8. SystemView
8
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
A Resource Allocator
CPU time, Memory Space, File
Storage, I/O Devices, Shared Code,
Data Structures, and more
A Control Program
Control execution of user programs
Prevent errors and misuse
OS definitions – US Dept.of Justice
against Microsoft in 1998
The stuff shipped by vendors as an OS
Run at all time
9. SystemGoals
9
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Two Conflicting Goals:
Convenient for the user!
Efficient operation of the computer
system!
We should
recognize the influences of operating
systems and computer architecture on
each other
and learn why and how OS’s are by
tracing their evolution and predicting what
they will become!
10. UNIXArchitecture
terminal controller, terminals,
physical memory, device controller,
devices such as disks, memory, etc.
CPU scheduling, signal handling,
virtual memory, paging, swapping,
file system, disk drivers, caching/buffering, etc.
Shells, compilers, X, application programs, etc.
Kernel interface
to the hardware
useruser user useruser user
user
User
interface
System call
interface
UNIX 10
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
11. MainframeSystems
11
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The first used to tackle many
commercial and scientific
applications!
0th Generation – 1940?s
A significant amount of set-up time in
the running of a job
Programmer = operator
Programmed in binary assembler
(1950) high level languages
12. Mainframe–BatchSystems
Batches sorted and submitted by
the operator
Simple batch systems
Off-line processing
~ Replace slow input devices with
faster units replace card
readers with disks
Resident monitor
~ Automatically transfer control from
one job to the next
• loader
• job sequencing
• control card
interpreter
User Program
Area
monitor
12
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
13. Mainframe–BatchSystems
c ard reader
Spooling (Simultaneous Peripheral Operation On-
Line)
~ Replace sequential-access devices with random-access
device
=> Overlap the I/O of one job with the computation of others
e.g. card disk, CPU services, disk printer
Job Scheduling
disks disks
CPU printer
13
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
14. Mainframe–
MultiprogrammedSystems
Multiprogramming increases CPU
utilization by organizing jobs so
that the CPU always has one to
execute – Early 1960
Multiporgrammed batched
systems
Job scheduling and CPU
scheduling
Goal : efficient use of scare
resources disk
monitor CPU
scheduling
job1
job2
job3
14
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
15. Mainframe–Time-Sharing
Systems
Time sharing (or
multitasking) is a logical
extension of
multiprogramming!
Started in 1960s and
become common in
1970s.
An interactive (or hand-
on) computer system
Multics, IBM OS/360
disk
on-line file system
15
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
virtual memory
sophisticated CPU scheduling
job synchronization
protection & security
......
and so on
16. DesktopSystems
16
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Personal Computers (PC’s)
Appeared in the 1970s.
Goals of operating systems keep
changing
Less-Powerful Hardware & Isolated
Environment Poor Features
Benefited from the development of
mainframe OS’s and the dropping of
hardware cost
Advanced protection features
User Convenience & Responsiveness
17. Parallel Systems
• A Tandem fault-tolerance solution
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
17
Tightly coupled: have more than one
processor in close communication sharing
computer bus, clock, and sometimes
memory and peripheral devices
Loosely coupled: otherwise
Advantages
Speedup – Throughput
Lower cost – Economy of Scale
More reliable – Graceful Degradation
Fail Soft (detection, diagnosis, correction)
18. Parallel Systems
18
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Symmetric multiprocessing model: each
processor runs an identical copy of the OS
Asymmetric multiprocessing model: a master-
slave relationship
~ Dynamically allocate or pre-allocate tasks
~ Commonly seen in extremely large systems
~ Hardware and software make a difference?
Trend: the dropping of microporcessor cost
OS functions are offloaded to slave
processors (back-ends)
19. DistributedSystems
19
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Definition: Loosely-Coupled Systems –
processors do not share memory or a clock
Heterogeneous vs Homogeneous
Advantages or Reasons
Resource sharing: computation power,
peripheral devices, specialized hardware
Computation speedup: distribute the
computation among various sites – load
sharing
Reliability: redundancy reliability
Communication: X-window, email
20. DistributedSystems
20
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Distributed systems depend on
networking for their functionality.
Networks vary by the protocols used.
TCP/IP, ATM, etc.
Types – distance
Local-area network (LAN)
Wide-area network (WAN)
Metropolitan-area network (MAN)
Small-area network – distance of few feet
Media – copper wires, fiber strands,
satellite wireless transmission, infrared
communication,etc.
21. DistributedSystems
21
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Client-Server Systems
Compute-server systems
File-server systems
Peer-to-Peer Systems
Network connectivity is an essential
component.
Network Operating Systems
Autonomous computers
A distributed operating system – a
single OS controlling the network.
22. 22
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
ClusteredSystems
Definition: Clustered computers which
share storage and are closely linked via
LAN networking.
Advantages: high availability, performance
improvement, etc.
Types
Asymmetric/symmetric clustering
Parallel clustering – multiple hosts that
access the same data on the shared
storage.
Global clusters
Distributed Lock Manager (DLM)
23. Real-TimeSystems
23
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Definition: A real-time system is a
computer system where a timely
response by the computer to external
stimuli is vital!
Hard real-time system: The system
has failed if a timing constraint, e.g.
deadline, is not met.
All delays in the system must be
bounded.
Many advanced features are absent.
24. Real-TimeSystems
24
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Soft real-time system: Missing a
timing constraint is serious, but does
not necessarily result in a failure
unless it is excessive
A critical task has a higher priority.
Supported in most commercial OS.
Real-time means on-time instead of
fast
26. 26
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Real-TimeSystems
Applications
Air traffic control
Space shuttle
Navigation
Multimedia systems
Industrial control systems
Home appliance
controller
Nuclear power plant
Virtual reality
Games
User interface
Vision and speech
recognition (approx.
100 ~ 200ms)
PDA, telephone
system
And more
27. 27
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
HandheldSystems
Handheld Systems
E.g., Personal Digital Assistant (PDA)
New Challenges – convenience vs
portability
Limited Size and Weight
Small Memory Size
No Virtual Memory
Slow Processor
Battery Power
Small display screen
Web-clipping
28. 28
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
FeatureMigration
MULTIplexed Information and
Computing Services (MULTICS)
1965-1970 at MIT as a utility
UNIX
Since 1970 on PDP-11
Recent OS’s
MS Windows, IBM OS/2, MacOS X
OS features being scaled down to fit
PC’s
Personal Workstations – large PC’s
29. ComputingEnvironments
Embedded OS’s often have limited features.29
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Traditional Computing
E.g., typical office environment
Web-Based Computing
Web Technology
Portals, network computers, etc.
Network connectivity
New categories of devices
Load balancers
Embedded Computing
Car engines, robots, VCR’s, home automation
30. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
30
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
32. 32
Computer-SystemStructure
Objective: General knowledge of the
structure of a computer system.
printer
CPU
printer
controller
memory
controller
disk
controller
memory
tape-drive
controller
disks
tape
drivers
Device controllers: synchronize and manage access to devices.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
33. Booting
33
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Bootstrap program:
Initialize all aspects of the system,
e.g., CPU registers, device
controllers, memory, etc.
Load and run the OS
Operating system: run init to initialize
system processes, e.g., various
daemons, login processes, after the
kernel has been bootstrapped.
(/etc/rc* & init or /sbin/rc* & init)
34. Interrupt
Hardware interrupt, e.g. services
requests of I/O devices
Software interrupt, e.g. signals,
invalid memory access, division by
zero, system calls, etc – (trap)
Procedures: generic handler or
interrupt vector (MS-DOS,UNIX)
process execution
interrupt
34
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
handler return
35. Interrupt HandlingProcedure
Saving of the address of the interrupted
instruction: fixed locations or stacks
Interrupt disabling or enabling issues: lost
interrupt?!
prioritized interrupts masking
interrupted process
system stack
35
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
fixed address
per interrupt
type
interrupted
address,
registers
......
handler
36. 36
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Interrupt HandlingProcedure
Interrupt Handling
Save interrupt information
OS determine the interrupt type (by polling)
Call the corresponding handlers
Return to the interrupted job by the restoring
important information (e.g., saved return addr.
program counter)
indexed by
a unique
device
number
Interrupt
Vector
0
1
n
---
---
---
---
---
---
---
---
---
Interrupt Handler
(Interrupt Service
Routines)
37. 37
I/OStructure
Device controllers are responsible of moving
data between the peripheral devices and their
local buffer storages.
printer
CPU
memory
controller
memory
tape-drive
controller
disk
tape
drivers
DMA
registers
buffers
printer
controller
registers buffers
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
38. I/OStructure
38
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
I/O operation
a. CPU sets up specific controller registers
within the controller.
b. Read: devices controller buffers
memory
Write: memory controller buffers
devices
c. Notify the completion of the operation by
triggering an interrupt
39. I/O Types
completion
39
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
wait till the
or
a. Synchronous I/O
Issues: overlapping of computations and IO
activities, concurrent I/O activities, etc.
I/O system call
• wait instruction (idle till interrupted)
• looping
or • polling
• wait for an interrupt
Loop: jmp Loop
40. I/O Types
Device driver
Interrupt handler
Hardware
data transfer
Requesting process
Device driver
Interrupt handler
Hardware
data transfer
user
Kernel
user
Kernel
Time
Synchronous I/O
Requesting process
wait
Time
Asynchronous I/O 40
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
41. I/O types
b. Asynchronous I/O
sync
*efficiency
wait till the
completion
wait mechanisms!!
41
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
42. I/O Types
A Device-Status Table Approach
card reader 1
status: idle
line printer 3
status: busy
disk unit 3
status: idle
........ Request
addr. 38596
len?1372
Request
file:xx
Record
Addr. len
Request
file:yy
Record
Addr. len
process 1
42
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
process 2
•Tracking of many
I/O requests
•type-ahead service
43. DMA
Goal: Release CPU from handling excessive
interrupts!
E.g. 9600-baud terminal
2-microsecond service / 1000 microseconds
High-speed device:
2-microsecond service / 4 microseconds
Procedure
Execute the device driver to set up the
registers of the DMA controller.
DMA moves blocks of data between the
memory and its own buffers.
Transfer from its buffers to its devices.
Interrupt the CPU when the job is done.
43
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
44. StorageStructure
Access time: a
cycle
Access time:
several cycles
Access time: many
cycles
memory
Magnetic Disks
registers
cache
CD-ROMs/DVDs
Jukeboxes
Tertiary Storage
• removable media
Secondary Storage
• nonvolatile storage
HW-Managed
Primary Storage
• volatile storage
SW-Managed
CPU
44
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
* Differences:
Size, Cost,
Speed, Volatility
45. Memory
Processor can have direct access!
Intermediate storage for data in the
registers of device controllers
Memory-Mapped I/O (PC & Mac)
(1) Frequently used devices
(2) Devices must be fast, such as video
controller, or special I/O instructions
is used to move data between
memory & device controller
registers
Programmed I/O – polling
R1
R2
R3
.
.
.
Memory
Device
Controller
or interrupt-driven handling
45
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
46. Magneticdisks
Transfer Rate
Random-
Access Time
Seek time
in x ms
Rotational
latency in y
ms
60~200
times/sec
spindle
sector
cylinder
platter
r/w
head
disk
arm
m
bl
46
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
arm
asse y
track
47. MagneticDisks
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Disks
Fixed-head disks:
More r/w heads v.s. fast track switching
Moving-head disks (hard disk)
Primary concerns:
Cost, Size, Speed
Computer host controller disk controller
disk drives (cache disks)
Floppy disk
slow rotation, low capacity, low density, but
less expensive
Tapes: backup or data transfer bet machine47s
48. 48
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
StorageHierarchy
register
Main Memory
Electronic Disk
Magnetic Disk
Optical Disk
Cache
Magnetic Tape
Cost High hitting rate
• instruction & data cache
• combined cache
Faster than magnetic
disk – nonvolatile?!
Alias: RAM Disks
Sequential
Access
XX GB/350F
Speed
Volatile Storage
49. StorageHierarchy
49
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Caching
Information is copied to a faster storage
system on a temporary basis
Assumption: Data will be used again soon.
Programmable registers, instr. cache, etc.
Cache Management
Cache Size and the Replacement Policy
Movement of Information Between
Hierarchy
Hardware Design & Controlling Operating
Systems
50. StorageHierarchy
Coherency and Consistency
Among several storage levels (vertical)
Multitasking vs unitasking
Among units of the same storage level ,
(horizontal), e.g. cache coherency
Multiprocessor or distributed systems
CPU Cache
Memory
CPU cache
Memory
50
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
51. HardwareProtection
instructions that may cause harm
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
51
Goal:
Prevent errors and misuse!
E.g., input errors of a program in a
simple batch operating system
E.g., the modifications of data and code
segments of another process or OS
Dual-Mode Operations – a mode bit
User-mode executions except those
after a trap or an interrupt occurs.
Monitor-mode (system mode, privileged
mode, supervisor mode)
Privileged instruction:machine
52. HardwareProtection
52
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
System Calls – trap to OS for executing
privileged instructions.
Resources to protect
I/O devices, Memory, CPU
I/O Protection (I/O devices are scare
resources!)
I/O instructions are privileged.
User programs must issue I/O through
OS
User programs can never gain control
over the computer in the system mode.
53. HardwareProtection
Memory Protection
Goal: Prevent a user program from
modifying the code or data structures
of either the OS or other users!
Instructions to modify the memory
space for a process are privileged.
kernel
job1
job2
……
……
Base register
Limit register
Check for every
memory address by
hardware
53
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
54. HardwareProtection
54
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
CPU Protection
Goal
Prevent user programs from sucking
up CPU power!
Use a timer to implement time-sharing
or to compute the current time.
Instructions that modify timers are
privileged.
Computer control is turned over to OS
for every time-slice of time!
Terms: time-sharing, context switch
55. NetworkStructure
55
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Local-Area Network (LAN)
Characteristics:
Geographically distributed in a small
area, e.g., an office with different
computers and peripheral devices.
More reliable and better speed
High-quality cables, e.g., twisted pair
cables for 10BaseT Ethernet or fiber optic
cables for 100BaseT Ethernet
Started in 1970s
Configurations: multiaccess bus, ring,
star networks (with gateways)
56. NetworkStructure
56
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Wide-Area Network (WAN)
Emerged in late 1960s (Arpanet in
1968)
World Wide Web (WWW)
Utilize TCP/IP over
ARPANET/Internet.
•Definition of “Intranet”: roughly speaking for any network under
one authorization, e.g., a company or a school.
• Often in a Local Area Network (LAN), or connected LAN’s.
• Having one (or several) gateway with the outside world.
• In general, it has a higher bandwidth because of a LAN.
58. NetworkStructure–WAN
forwarding packets to proper subnets.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
58
Router
With a Routing table
Use some routing protocol, e.g., to maintain
network topology by broadcasting.
Connecting several subnets (of the same IP-or-
higher-layer protocols) for forwarding packets to
proper subnets.
Gateway
Functionality containing that of routers.
Connecting several subnets (of different or the
same networks, e.g., Bitnet and Internet)for
59. NetworkStructure–WAN
59
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Connections between networks
T1: 1.544 mbps, T3: 45mbps
(28T1)
Telephone-system services over
T1
Modems
Conversion of the analog signal
and digital signal
60. NetworkLayersinLinux
PPP SLIP Ethernet
Internet Protocol (IP)
Network Layer ARP
TCP UDP
INET sockets
BSD sockets
Kernel
Applications
applications
60
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
61. TCP/IP
140.123.100, 140.123. 101, and 140.123.103
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
61
IP Address:
140.123.101.1
256*256*256*256 combinations
140.123 -> Network Address
101.1 -> Host Address
Subnet:
140.123.101 and 140.123.102
Mapping of IP addresses and host names
Static assignments: /etc/hosts
Dynamic acquisition: DNS (Domain Name Server)
/etc/resolv.confg
If /etc/hosts is out-of-date, re-check it up with DNS!
Domain name: cs.ccu.edu.tw as a domain name for
62. TCP/IP
62
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Transmission Control Protocol (TCP)
Reliable point-to-point packet
transmissions.
Applications which communicate over
TCP/IP with each another must provide IP
addresses and port numbers.
/etc/services
Port# 80 for a web server.
User Datagram Protocol (UDP)
Unreliable point-to-point services.
Both are over IP.
63. TCP/IP
63
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Mapping of Ethernet physical addresses
and IP addresses
Each Ethernet card has a built-in Ethernet
physical address, e.g., 08-01-2b-00-50-A6.
Ethernet cards only recognize frames with
their physical addresses.
Linux uses ARP (Address Resolution
Protocol) to know and maintain the mapping.
Broadcast requests over Ethernet for IP
address resolution over ARP.
Machines with the indicated IP addresses
reply with their Ethernet physical addresses.
64. TCP/IP
TCP header + Data
IP header Data
Ethernet header Data
An Ethernet
frame
• Each IP packet has an indicator of which protocol used, e.g., TCP or UDP
64
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
An IP packet
A TCP packet
65. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
65
67. Operating-SystemStructures
67
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goals: Provide a way to understand
an operating systems
Services
Interface
System Components
The type of system desired is the
basis for choices among various
algorithms and strategies!
68. SystemComponents
– Process
Management
68
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process Management
Process: An Active Entity
Physical and Logical Resources
Memory, I/O buffers, data, etc.
Data Structures Representing Current
Activities:
Program Counter
Stack
Data Section
CPU Registers
….
And More
Program
(code)
+
69. SystemComponents
– Process
Management
69
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Services
Process creation and deletion
Process suspension and resumption
Process synchronization
Process communication
Deadlock handling
70. SystemComponents–
Main- MemoryManagement
70
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Memory: a large array of words or bytes,
where each has its own address
OS must keep several programs in
memory to improve CPU utilization and
user response time
Management algorithms depend on the
hardware support
Services
Memory usage and availability
Decision of memory assignment
Memory allocation and deallocation
71. SystemComponents–File
Management
71
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goal:
A uniform logical view of information
storage
Each medium controlled by a device
Magnetic tapes, magnetic disks, optical
disks, etc.
OS provides a logical storage unit: File
Formats:
Free form or being formatted rigidly.
General Views:
A sequence of bits, bytes, lines, records
72. SystemComponents–File
Management
72
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Services
File creation and deletion
Directory creation and deletion
Primitives for file and directory
manipulation
Mapping of files onto secondary
storage
File Backup
* Privileges for file access control
73. SystemComponents–
I/O SystemManagement
73
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goal:
Hide the peculiarities of specific
hardware devices from users
Components of an I/O System
A buffering, caching, and spooling
system
A general device-driver interface
Drivers
74. SystemComponents–
Secondary-StorageManagement
74
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goal:
On-line storage medium for
programs & data
Backup of main memory
Services for Disk Management
Free-space management
Storage allocation, e.g., continuous
allocation
Disk scheduling, e.g., FCFS
75. SystemComponents
– Networking
75
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Issues
Resources sharing
Routing & connection strategies
Contention and security
Network access is usually
generalized as a form of file access
World-Wide-Web over file-transfer
protocol (ftp), network file-system
(NFS), and hypertext transfer protocol
(http)
76. SystemComponents
– ProtectionSystem
76
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goal
Resources are only allowed to
accessed by authorized processes.
Protected Resources
Files, CPU, memory space, etc.
Services
Detection & controlling mechanisms
Specification mechanisms
Remark: Reliability!
77. SystemComponents–
Command-Interpreter system
Command Interpreter
Interface between the user and the
operating system
Friendly interfaces
Command-line-based interfaces or
mused-based window-and-menu
interface
e.g., UNIX shell and command.com in
MS-DOS
Get the next command
77
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Execute the command
User-friendly?
78. Operation-SystemServices
78
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Program Execution
Loading, running, terminating, etc
I/O Operations
General/special operations for devices:
Efficiency & protection
File-System Manipulation
Read, write, create, delete, etc
Communications
Intra-processor or inter-processor
communication – shared memory or
message passing
79. Operation-SystemServices
79
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Error Detection
Possible errors from CPU, memory,
devices, user programs Ensure
correct & consistent computing
Resource Allocation
Utilization & efficiency
Accounting
Protection & Security
• user convenience or system efficiency!
80. Operation-SystemServices
80
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
System calls
Interface between processes & OS
How to make system calls?
Assemble-language instructions or
subroutine/functions calls in high-level
language such as C or Perl?
Generation of in-line instructions or a
call to a special run-time routine.
Example: read and copy of a file!
Library Calls vs System Calls
81. use parameters
from table x
Operation-SystemServices
How a system call
occurs?
Types and
information
Parameter Passing
Registers
Registers pointing to
blocks
Linux
Stacks
x: parameters
for call
load address x
system call 13
x
register
Code for
System
Call 13
81
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
82. Operation-SystemServices
82
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
System Calls
Process Control
File Management
Device Management
Information Maintenance
Communications
83. Operation-SystemServices
83
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process & Job Control
End (normal exit) or abort (abnormal)
Error level or no
Load and execute
How to return control?
e.g., shell load & execute commands
Creation and/or termination of
processes
Multiprogramming?
84. Operation-SystemServices
84
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process & Job Control (continued)
Process Control
Get or set attributes of processes
Wait for a specified amount of time
or an event
Signal event
Memory dumping, profiling, tracing,
memory allocation & de-allocation
85. Operation-SystemServices
85
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Examples: MS-DOS & UNIX
free memory
process
command
interpreter
kernel
process A
interpreter
free memory
process B
kernel
86. Operation-SystemServices
86
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
File Management
Create and delete
Open and close
Read, write, and reposition (e.g.,
rewinding)
lseek
Get or set attributes of files
Operations for directories
87. Operation-SystemServices
87
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Device management
Request or release
Open and close of special files
Files are abstract or virtual devices.
Read, write, and reposition (e.g.,
rewinding)
Get or set file attributes
Logically attach or detach devices
88. Operation-SystemServices
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Information maintenance
Get or set date or time
Get or set system data, such as the amount
of free memory
Communication
Message Passing
Open, close, accept connections
Host ID or process ID
Send and receive messages
Transfer status information
Shared Memory
Memory mapping & process synchronization88
89. 89
Operation-SystemServices
Shared Memory
Max Speed & Comm Convenience
Message Passing
No Access Conflict & Easy Implementation
kernel
ProcessA
Process B
Process A
Shared Memory
Process B
kernel
M
M
M
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
90. SystemPrograms
90
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Goal:
Provide a convenient environment for
program development and execution
Types
File Management, e.g., rm.
Status information, e.g., date.
File Modifications, e.g., editors.
Program Loading and Executions, e.g.,
loader.
Programming Language Supports, e.g.,
compilers.
Communications, e.g., telnet.
91. SystemPrograms–
CommandInterpreter
Two approaches:
Contain codes to execute commands
Fast but the interpreter tends to be
big!
Painful in revision!
del
91
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
cd
92. SystemPrograms–
CommandInterpreter
92
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Implement commands as system
programs Search exec files
which corresponds to commands
(UNIX)
Issues
a. Parameter Passing
Potential Hazard: virtual memory
b. Being Slow
c. Inconsistent Interpretation of
Parameters
93. SystemStructure–MS-DOS
MS-DOS Layer Structure
Application program
Resident system program
MS-DOS device drivers
ROM BIOS device drivers
93
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
94. SystemStructure–UNIX
terminal controller, terminals,
physical memory, device controller,
devices such as disks, memory, etc.
CPU scheduling, signal handling,
virtual memory, paging, swapping,
file system, disk drivers, caching/buffering, etc.
Shells, compilers, X, application programs, etc.
Kernel interface
to the hardware
useruser user useruser user
user
User
interface
System call
interface
UNIX 94
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
95. SystemStructure
A Layered Approach – A Myth
Advantage: Modularity ~ Debugging &
Verification
Difficulty: Appropriate layer definitions, less
efficiency due to overheads!
Layer M
Layer M-1
hidden
ops
new
ops
existing
ops
95
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
96. SystemStructure
96
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
A Layer Definition Example:
L5 User programs
L4 I/O buffering
L3 Operator-console device driver
L2 Memory management
L1 CPU scheduling
L0 Hardware
97. SystemStructure–OS/2
* Some layers of NT were from user space to kernel space in NT4.0
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
97
OS/2 Layer Structure
Application Application Application
Subsystem Subsystem Subsystem
Device driver Device driver Device driver
‧memory management
System kernel ‧task scheduling
‧device management
Application-program Interface
98. SystemStructure
– Microkernels
98
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The concept of microkernels was
proposed in CMU in mid 1980s (Mach).
Moving all nonessential components
from the kernel to the user or system
programs!
No consensus on services in kernel
Mostly on process and memory
management and communication
Benefits:
Ease of OS service extensions
portability, reliability, security
99. 99
SystemStructure
– Microkernels
kernel
OS/2
Applications OS/2
Server
Examples
Microkernels: True64UNIX (Mach
kernel), MacOS X (Mach kernel),
QNX (msg passing, proc scheduling,
HW interrupts, low-level networking)
Hybrid structures: Windows NT
POSIX
Applications POSIX
Server
Win32
Applications Win32
Server
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
100. 100
Virtual Machine
Virtual Machines: provide an interface that is
identical to the underlying bare hardware
interface
processes processes processes processes
kernel
kernel kernel
hardware
virtual machine implementation
hardware
kernel
VM1 VM2 VM3
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
101. Virtual Machine
101
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Implementation Issues:
Emulation of Physical Devices
E.g., Disk Systems
An IBM minidisk approach
User/Monitor Modes
(Physical) Monitor Mode
Virtual machine software
(Physical) User Mode
Virtual monitor mode & Virtual user
mode
102. Virtual Machine
virtual
user
mode
virtual
monitor
mode
monitor
mode
processes processes processes
kernel 1 kernel 2 kernel 3
virtual machine software
hardware
P1/VM1 system call
Trap
Service for the system call
Set program counter
& register contents,
& then restart VM1
Simulate the
effect of the I/O
instruction
Restart VM1
Finish
service
time
102
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
103. Virtual Machine
103
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Disadvantages:
Slow!
Execute most instructions directly on the
hardware
No direct sharing of resources
Physical devices and
communications
* I/O could be slow (interpreted) or fast (spooling)
104. Virtual Machine
104
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Advantages:
Complete Protection – Complete
Isolation!
OS Research & Development
System Development Time
Extensions to Multiple Personalities, such
as Mach (software emulation)
Emulations of Machines and OS’s, e.g.,
Windows over Linux
105. Virtual Machine–Java
Sun Microsystems in late 1995
Java Language and API Library
Java Virtual Machine (JVM)
Class loader (for
bytecode .class files)
Class verifier
Java interpreter
An interpreter, a just-in-time (JIT)
compiler, hardware
class loader
verifier
java interpreter
host system
java .class files
105
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
106. Virtual Machine–Java
JVM
Garbage collection
Reclaim unused objects
Implementation being specific for
different systems
Programs are architecture neutral
and portable
class loader
verifier
java interpreter
host system
java .class files
106
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
107. SystemDesign
&
Implementation
Design Goals & Specifications:
User Goals, e.g., ease of use
System Goals, e.g., reliable
Rule 1: Separation of Policy & Mechanism
Policy:What will be done?
Mechanism:How to do things?
Example: timer construct and time slice
Two extreme cases:
Microkernel-based OS Macintosh OS
107
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
108. SystemDesign
&
Implementation
* Tracing for bottleneck identification, exploring of excellent algorithms,1
e0
tc
8.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
OS Implementation in High-Level
Languages
E.g., UNIX, OS/2, MS NT, etc.
Advantages:
Being easy to understand & debug
Being written fast, more compact,
and portable
Disadvantages:
Less efficient but more storage for
code
109. SystemGeneration
SYSGEN (System Generation)
Ask and probe for information concerning the
specific configuration of a hardware system
CPU, memory, device, OS options, etc.
No recompilation Recompilation
& completely Linking of of a modified
table-driven modules for source code
Issues
selected OS
Size, Generality, Ease of modification
109
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
110. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
110
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
112. Processes
112
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Objective:
Process Concept & Definitions
Process Classification:
Operating system processes
executing system code
User processes executing system
code
User processes executing user code
113. Processes
113
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Example: Special Processes in Unix
PID 0 – Swapper (i.e., the scheduler)
Kernel process
No program on disks correspond to this
process
PID 1 – init responsible for bringing up a Unix
system after the kernel has been
bootstrapped. (/etc/rc* & init or /sbin/rc* & init)
User process with superuser privileges
PID 2 - pagedaemon responsible for paging
Kernel process
114. Processes
114
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process
A Basic Unit of Work from the Viewpoint of
OS
Types:
Sequential processes: an activity resulted from
the execution of a program by a processor
Multi-thread processes
An Active Entity
Program Code – A Passive Entity
Stack and Data Segments
The Current Activity
PC, Registers, Contents in the Stack and Data
Segments
116. Processes
116
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process Control Block (PCB)
Process State
Program Counter
CPU Registers
CPU Scheduling Information
Memory Management Information
Accounting Information
I/O Status Information
117. Processes
pointer
process state
pc
register
PCB: The repository for any information
that may vary from process to process
PCB[]
0
1
2
NPROC-1
117
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
118. Processes
118
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process Control Block (PCB) – An Unix
Example
proc[i]
Everything the system must know when the
process is swapped out.
pid, priority, state, timer counters, etc.
.u
Things the system should know when process
is running
signal disposition, statistics accounting, files[], etc.
119. Processes
Example: 4.3BSD
text
structure
proc[i]
entry
page
table Code Segment
Data Segment
PC
heap
user stack
argv, argc,…
sp
.u
per-process
kernel stack
p_textp
x_caddr
p_p0br
u_proc
p_addr
Red
Zone
119
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
120. Processes
Example: 4.4BSD
proc[i]
entry
process grp
…
file descriptors
VM space region lists
page
table Code Segment
Data Segment
heap
user stack
argv, argc,…
.u
per-process
kernel stack
p_p0br
p_addr
u_proc 120
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
121. ProcessScheduling
The goal of multiprogramming
Maximize CPU/resource utilization!
The goal of time sharing
Allow each user to interact with his/her program!
PCB1 PCB2
head
tail
head
tail
head
tail
PCB3
ready
queue
disk
unit 0
tape
unit 1
121
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
122. ProcessScheduling–
A QueueingDiagram
ready queue
122
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
dispatch
CPU
I/O I/O queue I/O request
time slice expired
fork a child
wait for an interrupt
interrupt occurs
child executes
child terminate
123. ProcessScheduling
– Schedulers
Long-Term (/Job) Scheduler
Goal: Select a good mix of I/O-bound and
CPU-bound process
Remarks:
1. Control the degree of multiprogramming
2. Can take more time in selecting processes
because of a longer interval between executions
CPU
Memory
Job pool
3. May not exist physically 123
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
124. ProcessScheduling
– Schedulers
124
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Short-Term (/CPU) Scheduler
Goal:Efficiently allocate the CPU to
one of the ready processes
according to some criteria.
Mid-Term Scheduler
Swap processes in and out memory to
control the degree of multiprogramming
125. ProcessScheduling
– Context Switches
125
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Context Switch ~ Pure Overheads
Save the state of the old process and load the
state of the newly scheduled process.
The context of a process is usually reflected in
PCB and others, e.g., .u in Unix.
Issues:
The cost depends on hardware support
e.g. processes with multiple register sets or
computers with advanced memory management.
Threads, i.e., light-weight process (LWP), are
introduced to break this bottleneck!
126. OperationsonProcesses
Process Creation & Termination
Restrictions on resource usage
Passing of Information
Concurrent execution
root
pagedaemon swapper init
user1 user2 user3
126
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
127. OperationsonProcesses
127
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process Duplication
A copy of parent address space +
context is made for child, except the
returned value from fork():
Child returns with a value 0
Parent returns with process id of child
No shared data structures between
parent and child – Communicate via
shared files, pipes, etc.
Use execve() to load a new program
fork() vs vfork() (Unix)
128. OperationsonProcesses
128
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Example:
…
if ( pid = fork() ) == 0) {
/* child process */
execlp(“/bin/ls”, “ls”, NULL);
} else if (pid < 0) {
fprintf(stderr, “Fork Failed”);
exit(-1);
} else {
/* parent process */
wait(NULL);
}
129. OperationsonProcesses
129
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Termination of Child Processes
Reasons:
Resource usages, needs, etc.
Kill, exit, wait, abort, signal, etc.
Cascading Termination
130. CooperatingProcesses
130
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Cooperating processes can affect or
be affected by the other processes
Independent Processes
Reasons:
Information Sharing, e.g., files
Computation Speedup, e.g.,
parallelism.
Modularity, e.g., functionality dividing
Convenience, e.g., multiple work
131. CooperatingProcesses
A Consumer-Producer Example:
Bounded buffer or unbounded buffer
Supported by inter-process
communication (IPC) or by hand coding
0
1
2
n-1
n-2
131
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
in
ozut
buffer[0…n-1]
Initially,
in=out=0;
132. CooperatingProcesses
132
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Producer:
while (1) {
/* produce an item nextp */
while (((in+1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[ in ] = nextp;
in = (in+1) % BUFFER_SIZE;
}
133. CooperatingProcesses
133
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Consumer:
while (1) {
while (in == out)
; /* do nothing */
nextc = buffer[ out ];
out = (out+1) % BUFFER_SIZE ;
/* consume the item in nextc */
}
134. InterprocessCommunication
134
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Why Inter-Process Communication
(IPC)?
Exchanging of Data and Control
Information!
Why Process Synchronization?
Protect critical sections!
Ensure the order of executions!
135. InterprocessCommunication
135
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
IPC
Shared Memory
Message Passing
Logical Implementation of Message
Passing
Fixed/variable msg size,
symmetric/asymmetric communication,
direct/indirect communication,
automatic/explicit buffering, send by
copy or reference, etc.
136. InterprocessCommunication
136
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Classification of Communication by
Naming
Processes must have a way to refer
to each other!
Types
Direct Communication
Indirect Communication
137. InterprocessCommunication –
137
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Direct Communication
Process must explicitly name the
recipient or sender of a communication
Send(P, msg), Receive(Q, msg)
Properties of a Link:
a. Communication links are established
automatically.
b. Two processes per a link
c. One link per pair of processes
d. Bidirectional or unidirectional
138. InterprocessCommunication –
Direct Communication
138
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Issue in Addressing:
Symmetric or asymmetric addressing
Send(P, msg), Receive(id, msg)
Difficulty:
Process naming vs modularity
139. InterprocessCommunication –
Indirect Communication
Two processes can communicate only
if the process share a mailbox (or ports)
Properties:
1. A link is established between a pair of
processes only if they share a mailbox.
2. n processes per link for n >= 1.
3. n links can exist for a pair of processes for
n >=1.
A
A
4. Bidirectional or unidirectional 139
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
send(A, msg)=> =>receive(A, msg)
140. InterprocessCommunication –
Indirect Communication
Issues:
a. Who is the recipient of a message?
b. Owners vs Users
Process owner as the sole recipient?
OS Let the creator be the
owner? Privileges can be passed?
Garbage collection is needed?
P1
msgs
P2
?
P3
140
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
141. InterprocessCommunication –
Synchronization
141
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Blocking or Nonblocking
(Synchronous versus Asynchronous)
Blocking send
Nonblocking send
Blocking receive
Nonblocking receive
Rendezvous – blocking send &
receive
142. InterprocessCommunication –
Buffering
142
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The Capacity of a Link = the # of messages
could be held in the link.
Zero capacity(no buffering)
Msg transfer must be synchronized – rendezvous!
Bounded capacity
Sender can continue execution without waiting till the
link is full
Unbounded capacity
Sender is never delayed!
The last two items are for asynchronous
communication and may need acknowledgement
143. InterprocessCommunication –
143
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Buffering
Special cases:
a. Msgs may be lost if the receiver
can not catch up with msg sending
synchronization
b. Senders are blocked until the
receivers have received msgs and
replied by reply msgs
A Remote Procedure Call (RPC)
framework
144. InterprocessCommunication –
ExceptionConditions
144
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process termination
a. Sender Termination Notify or
terminate the receiver!
b. Receiver Termination
a. No capacity sender is blocked.
b. Buffering messages are
accumulated.
145. InterprocessCommunication –
ExceptionConditions
messages & resend them as necessary!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
145
Ways to Recover Lost Messages (due to
hardware or network failure):
OS detects & resends messages.
Sender detects & resends messages.
OS detects & notify the sender to handle it.
Issues:
a. Detecting methods, such as timeout!
b. Distinguish multiple copies if retransmitting is
possible
Scrambled Messages:
Usually OS adds checksums, such as CRC, inside
146. Example- Mach
146
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Mach – A message-based OS from
the Carnegie Mellon University
When a task is created, two special
mailboxes, called ports, are also
created.
The Kernel mailbox is used by the
kernel to communication with the
tasks
The Notify mailbox is used by the
kernel sends notification of event
occurrences.
147. Example- Mach
* One task can either own or receive from a mailbox.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
147
Three system calls for message
transfer:
msg_send:
Options when mailbox is full:
a. Wait indefinitely
b. Return immediately
c. Wait at most for n ms
d. Temporarily cache a message.
a. A cached message per sending thread
for a mailbox
148. Example- Mach
148
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
msg_receive
To receive from a mailbox or a set of
mailboxes. Only one task can own &
have a receiving privilege of it
* options when mailbox is empty:
a. Wait indefinitely
b. Return immediately
c. Wait at most for n ms
msg_rpc
Remote Procedure Calls
149. Example- Mach
149
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
port_allocate
create a mailbox (owner)
port_status ~ .e.g, # of msgs in a link
All messages have the same priority and are
served in a FIFO fashion.
Message Size
A fixed-length head + a variable-length
data + two mailbox names
Message copying: message copying
remapping of addressing space
System calls are carried out by messages.
150. 150
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Example–Windows2000
Local Procedure Call (LPC) – Message
Passing on the Same Processor
1. The client opens a handle to a
subsystem’s connection port object.
2. The client sends a connection request.
3. The server creates two private
communication ports, and returns the
handle to one of them to the client.
4. The client and server use the
corresponding port handle to send
messages or callbacks and to listen for
replies.
151. Example–Windows2000
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Three Types of Message Passing
Techniques
Small messages
Message copying
Large messages – section object
To avoid memory copy
Sending and receiving of the pointer
and size information of the object
A callback mechanism
When a response could not be
made immediately.
151
152. Communicationin
Client- Server Systems
Socket
An endpoint for communication
identified by an IP address
concatenated with a port number
A client-server architecture
S
S
o
o
c
c
k
k
e
e
t
t
1
1
4
4
6
6
.
8
.
8
6
6
.
5
.
5
.
2
.
2
:
1
:
1
6
6
5
5
2
2
S
S
o
o
c
c
k
k
e
e
t
t
11661
1
.
2
.
2
5
5.
1.
19
9
.
8
.
8
:
8
:
80
0
Web server
* /etc/services: Port # under 1024 ~ 23-telnet, 21-ftp, 80-web server, e1
tc5
2
.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Host X
153. Communicationin
Client- Server Systems
153
client.close();
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
sock = new ServerSocket(5155);
…
client = sock.accept();
pout = new PrintWriter(client.getOutputStream(),
true);
…
Pout.println(new java.util.Date().toString());
pout.close();
Three types of sockets in Java
Connection-oriented (TCP) – Socket class
Connectionless (UDP) – DatagramSocket class
MulticastSocket class – DatagramSocket subclass
Server
Client
sock = new Socket(“127.0.0.1”,5155);
…
in = sock.getInputStream();
bin = new BufferReader(new
InputStreamReader(in));
…
sock.close();
154. Communicationin
Client- Server Systems
Locate the proper port and marshall paramet1e5r4s.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Remote Procedure Call (RPC)
A way to abstract the procedure-call
mechanism for use between systems with
network connection.
Needs:
Ports to listen from the RPC daemon site
and to return results, identifiers of functions
to call, parameters to pack, etc.
Stubs at the client site
One for each RPC
155. Communicationin
Client- Server Systems
Matchmaker – a rendezvous mechanism
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
155
Needs (continued)
Stubs at the server site
Receive the message
Invoke the procedure and return the results.
Issues for RPC
Data representation
External Data Representation (XDR)
Parameter marshalling
Semantics of a call
History of all messages processed
Binding of the client and server port
156. Communicationin
Client- Server Systems
Client Messages Server
Call kernel
to send RPC
msg to
Procedure X
Kernel sends
msg to
matchmaker
Kernel places
port P in usr
RPC msg
Kernel sends
RPC
Kernel receives
reply and passes
to user
Port: matchaker
Re: addr. to X
Port: kernel
Re: port P to X
Port: P
<contents>
Port: kernel
<output>
Matchmaker
receives msg
Matchmaker
replies to client
with port P
Daemon listens
to port P and
receives msg
Daemon processes
request and sends
output
156
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
157. Communicationin
Client- Server Systems
157
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
An Example for RPC
A Distributed File System (DFS)
A set of RPC daemons and clients
DFS port on a server on which a file
operation is to take place:
Disk operations: read, write,
delete, status, etc –
corresponding to usual system
calls
158. Communicationin
Client- Server Systems
158
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Remote Method Invocation (RMI)
Allow a thread to invoke a method on a
remote object.
boolean val = Server.someMethod(A,B)
Implementation
Stub – a proxy for the remote object
Parcel – a method name and its
marshalled parameters, etc.
Skeleton – for the unmarshalling of
parameters and invocation of the method
and the sending of a parcel back
159. Communicationin
Client- Server Systems
159
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Parameter Passing
Local (or Nonremote) Objects
Pass-by-copy – an object
serialization
Remote Objects – Reside on a
different Java virtual machine (JVM)
Pass-by-reference
Implementation of the interface –
java.io.Serializable
160. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
160
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
162. Threads
162
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Objectives:
Concepts and issues associated with
multithreaded computer systems.
Thread – Lightweight process(LWP)
a basic unit of CPU utilization
A thread ID, program counter, a
register set, and a stack space
Process – heavyweight process
A single thread of control
163. Threads
Motivation
A web browser
Data retrieval
Text/image displaying
A word processor
Displaying
Keystroke reading
Spelling and grammar
checking
A web server
Clients’ services
Request listening
data segment
code segment
stack stack stack
registers registers registers
files
files
163
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
164. Threads
164
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Benefits
Responsiveness
Resource Sharing
Economy
Creation and context switching
30 times slower in process creation
in Solaris 2
5 times slower in process context
switching in Solaris 2
Utilization of Multiprocessor
Architectures
165. User-Level Threads
User-level threads
are implemented by
a thread library at
the user level.
Examples:
POSIX Pthreads,
Mach C-threads,
Solaris 2 UI-threads
Advantages
entire process.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
165
Context switching among them is extremely fast
Disadvantages
Blocking of a thread in executing a system call can block the
166. Kernel-Level Threads
Advantage
Blocking of a thread will not block its entire task.
Disadvantage
Context switching cost is a little bit higher because
Kernel-level threads
are provided a set of
system calls similar to
those of processes
Examples
Windows 2000, Solaris
2, True64UNIX
the kernel must do the switching.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
166
167. MultithreadingModels
Many-to-One Model
Many user-level threads to one
kernel thread
Advantage:
Efficiency
Disadvantage:
One blocking system call blocks all.
No parallelism for multiple processors
Example: Green threads for Solaris 2
k
167
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
168. MultithreadingModels
One-to-One Model
One user-level thread to one kernel
thread
Advantage: One system call blocks
one thread.
Disadvantage: Overheads in creating
a kernel thread.
Example: Windows NT, Windows
2000, OS/2
k
168
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
169. MultithreadingModels
Many-to-Many Model
Many user-level threads to many
kernel threads
Advantage:
A combination of parallelism and
efficiency
Example: Solaris 2, IRIX, HP-
UX,Tru64 UNIX
k k k
169
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
170. ThreadingIssues
170
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Fork and Exec System Calls
Fork: Duplicate all threads or create
a duplicate with one thread?
Exec: Replace the entire process,
including all threads and LWPs.
Fork exec?
171. 171
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
ThreadingIssues
Thread Cancellation
Target thread
Two scenarios:
Asynchronous cancellation
Deferred cancellation
Cancellation points in Pthread.
Difficulty
Resources have been allocated to a
cancelled thread.
A thread is cancelled while it is updating
data.
172. 172
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
ThreadingIssues
Signal Handling
Signal
Synchronous – delivered to the same
process that performed the operation
causing the signal,
e.g., illegal memory access or division by
zero
Asynchronous
e.g., ^C or timer expiration
Default or user-defined signal handler
Signal masking
173. ThreadingIssues
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Delivery of a Signal
To the thread to which the signal applies
e.g., division-by-zero
To every thread in the process
e.g., ^C
To certain threads in the process
Assign a specific thread to receive all
threads for the process
Solaris 2
Asynchronous Procedure Calls (APCs)
To a particular thread rather than a proce1s73s
174. ThreadingIssues
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Thread Pools
Motivations
Dynamic creation of threads
Limit on the number of active threads
Awake and pass a request to a thread in
the pool
Benefits
Faster for service delivery and limit on the
# of threads
Dynamic or static thread pools
Thread-specific data – Win32 & Pthrea1d74s
175. 175
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Pthreads
Pthreads (IEEE 1003.1c)
API Specification for Thread Creation
and Synchronization
UNIX-Based Systems, Such As
Solaris 2.
User-Level Library
Header File: <pthread.h>
pthread_attr_init(), pthread_create(),
pthread_exit(), pthread_join(), etc.
176. Pthreads
}
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
176
#include <pthread.h>
main(int argc, char *argv[]) {
…
pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, argv[1]);
pthread_join(tid, NULL);
… }
void *runner(void *param) {
int i, upper = atoi(param), sum = 0;
if (upper > 0)
for(i=1;i<=upper,i++)
sum+=i;
pthread_exit(0);
177. Solaris 2
Implementation
of Pthread API
in addition to
supporting
thread creation
and
management.
kernel threadsuser-level
threads with a
library for
CPU
kernel
user-level
thread
light weight
177
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
process
178. Solaris 2
178
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Many-to-Many Model
Each process has at least one LWP
Each LWP has a kernel-level thread
User-level threads must be connected
to LWPs to accomplish work.
A bound user-level thread
An unbound thread
Some kernel threads running on the
kernel’s behalf have no associated
LWPs – system threads
179. 179
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Solaris 2
Processor Allocation:
Multiprogramming or Pinned
Switches of user-level threads
among LWPs do not need kernel
intervention.
If the kernel thread is blocked, so
does the LWP and its user-level
threads.
Dynamic adjustment of the number
of LWPs
180. Solaris2
Data Structures
A User-Level Thread
A Thread ID, a register set (including
PC, SP), stack, and priority – in user
space
A LWP
A Register set for the running user-
level thread – in kernel space
A Kernel thread
A copy of the kernel registers, a
pointer to its LWP, priority, scheduling
information
Process ID
Mem Map
Priority
Open Files
LWP1
LWP2
Solaris 2 Process 180
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
181. Windows2000
181
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Win32 API
One-to-One Model
Fiber Library for the M:M Model
A Thread Contains
A Thread ID
Context: A Register Set, A User
Stack, A Kernel Stack, and A Private
Storage Space
182. Windows2000
Data Structures
ETHREAD (executive thread block)
A ptr to the process,a ptr to KTHREAD,
the address of the starting routine
KTHREAD (kernel thread block)
Scheduling and synchronization
information, a kernel stack, a ptr to TEB
TEB (thread environment block)
A user stack, an array for thread-
specific data.
Kernel
Space
User
Space
182
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
183. Linux
183
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Threads introduced in Version 2.2
clone() versus fork()
Term task for process& thread
Several per-process data structures,
e.g., pointers to the same data
structures for open files, signal
handling, virtual memory, etc.
Flag setting in clone() invocation.
Pthread implementations
184. Java
184
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Thread Support at the Language Level
Mapping of Java Threads to Kernel
Threads on the Underlying OS?
Windows 2000: 1:1 Model
Thread Creation
Create a new class derived from the
Thread class
Run its start method
Allocate memory and initialize a new
thread in the JVM
start() calls the run method, making the
thread eligible to be run by the JVM.
185. Java
185
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
class Summation extends Thread
{ public Summation(int n) {
upper = n; }
public void run() {
int sum = 0;
… }
…}
public class ThreadTester
{ …
Summation thrd = new
Summation(Integer.ParseInt(args[0]));
thrd.start();
…}
186. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
186
188. CPUScheduling
188
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Objective:
Basic Scheduling Concepts
CPU Scheduling Algorithms
Why Multiprogramming?
Maximize CPU/Resources Utilization
(Based on Some Criteria)
189. CPUScheduling
Process Execution
CPU-bound programs tend to have a
few very long CPU bursts.
IO-bound programs tend to have
many very short CPU bursts.
CPU-Burst
I/O-Burst
New
Terminate
189
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
190. CPUScheduling
The distribution can help in selecting
an appropriate CPU-scheduling
algorithms
120
100
60
20
Burst Duration (ms) 190
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
8 16 24
frequency
191. CPUScheduling
Ready Running
Waiting
CPU Scheduler – The Selection of
Process for Execution
A short-term scheduler
New Terminated
dispatched
191
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
192. CPUScheduling
192
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Nonpreemptive Scheduling
A running process keeps CPU until it
volunteers to release CPU
E.g., I/O or termination
Advantage
Easy to implement (at the cost of service
response to other processes)
E.g., Windows 3.1
193. CPUScheduling
193
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Preemptive Scheduling
Beside the instances for non-preemptive
scheduling, CPU scheduling occurs
whenever some process becomes
ready or the running process leaves the
running state!
Issues involved:
Protection of Resources, such as I/O
queues or shared data, especially for
multiprocessor or real-time systems.
Synchronization
E.g., Interrupts and System calls
194. CPUScheduling
Dispatcher
Functionality:
Switching context
Switching to user mode
Restarting a user program
Dispatch Latency:
Must be fast
Stop a process Start a process
194
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
195. SchedulingCriteria
195
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Why?
Different scheduling algorithms may
favor one class of processes over
another!
Criteria
CPU Utilization
Throughput
Turnaround Time: CompletionT-StartT
Waiting Time: Waiting in the ReadyQ
Response Time: FirstResponseTime
196. SchedulingCriteria
196
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
How to Measure the Performance of
CPU Scheduling Algorithms?
Optimization of what?
General Consideration
Average Measure
Minimum or Maximum Values
Variance Predictable Behavior
198. First-Come,First-
Served Scheduling
(FCFS)
The process which requests the
CPU first is allocated the CPU
Properties:
Non-preemptive scheduling
CPU might be hold for an extended
period.
CPU
request
A FIFO ready queue dispatched 198
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
199. First-Come,First-
Served Scheduling
(FCFS)
burst times !
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
199
Example
Process CPU Burst Time
P1 24
P2 3
P3 3
P1 P2 P3
Average waiting time
= (0+24+27)/3 = 17
Average waiting time
= (6+0+3)/3 = 3
P2 P3 P1
*The average waiting time is highly affected by process CPU
Gantt
Chart 0 24 27 30
0 3 6 30
200. Example: Convoy
Effect
One CPU-bound
process + many
I/O-bound
processes
First-Come,First-
Served Scheduling
(FCFS) CPU
ready queue
I/O device
idle
ready queue
All other processes wait for it
to get off the CPU! 200
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
201. Shortest-Job-FirstScheduling
(SJF)
201
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Non-Preemptive SJF
Shortest next CPU burst first
process
P1
P2
P3
P4
CPU burst time
6
8
7
3
P4 P1 P3 P2
0 3 9 16 24
Average waiting time
= (3+16+9+0)/4 = 7
202. Shortest-Job-FirstScheduling
(SJF)
202
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Nonpreemptive SJF is optimal when
processes are all ready at time 0
The minimum average waiting time!
Prediction of the next CPU burst time?
Long-Term Scheduler
A specified amount at its submission
time
Short-Term Scheduler
Exponential average (0<= <=1)
n+1 = tn + (1-) n
203. 203
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Shortest-Job-FirstScheduling
(SJF)
Preemptive SJF
Shortest-remaining-time-first
Process CPU Burst Time Arrival Time
P1 8 0
P2 4 1
P3 9 2
P4 5 3
P1 P2 P4 P1 P3
0 1 5 10 17 26
Average Waiting
Time = ((10-1) +
(1-1) + (17-2) +
(5-3))/4 = 26/4
= 6.5
204. * Context switching cost ~ modeling & analys2is04
Shortest-Job-FirstScheduling
(SJF)
Preemptive or Non-preemptive?
Criteria such as AWT (Average
Waiting Time)
0 10
1 10 11
Non-preemptive
AWT = (0+(10-1))/2
= 9/2 = 4.5
or
0
1 2
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
11 Preemptive AWT
= ((2-1)+0) = 0.5
205. PriorityScheduling
205
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
CPU is assigned to the process
with the highest priority – A
framework for various scheduling
algorithms:
FCFS: Equal-Priority with Tie-
Breaking by FCFS
SFJ: Priority = 1 / next CPU burst
length
206. PriorityScheduling
206
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process CPU Burst Time Priority
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
Gantt Graph
P2 P5 P1 P3 P4
0 1 6 16 18 19
Average waiting time
= (6+0+16+18+1)/5 = 8.2
207. PriorityScheduling
207
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Priority Assignment
Internally defined – use some
measurable quantity, such as the #
of open files, Average CPU Burst
Average I/O Burst
Externally defined – set by criteria
external to the OS, such as the
criticality levels of jobs.
208. PriorityScheduling
208
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Preemptive or Non-Preemptive?
Preemptive scheduling – CPU
scheduling is invoked whenever a
process arrives at the ready queue,
or the running process relinquishes
the CPU.
Non-preemptive scheduling – CPU
scheduling is invoked only when the
running process relinquishes the
CPU.
209. PriorityScheduling
209
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Major Problem
Indefinite Blocking (/Starvation)
Low-priority processes could starve
to death!
A Solution: Aging
A technique that increases the
priority of processes waiting in the
system for a long time.
210. Round-RobinScheduling(RR)
RR is similar to FCFS except that
preemption is added to switch between
processes.
ready running
Interrupt at every time quantum (time slice)
Goal: Fairness – Time Sharing
FIFO…
CPU
The quantum is used up!
New process
210
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
211. Round-RobinScheduling(RR)
211
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process
P1
P2
P3
CPU Burst Time
24
3 Time slice = 4
3
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
AWT = ((10-4) + (4-0) + (7-0))/3
= 17/3 = 5.66
212. 212
Round-RobinScheduling(RR)
0
time quantum
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
10
0 6 10
0 10
If context switch cost
= 10%
12
6
1
Service Size and Interval
Time quantum = q Service interval <= (n-
1)*q if n processes are ready.
IF q = ∞, then RR FCFS.
IF q = , then RR processor sharing. The
# of context switchings increases!
process quantum context switch #
0
1
9
=> 1/11 of CPU is wasted!
213. Round-RobinScheduling(RR)
Turnaround Time
0 10 20 30
10 20 30
30
process (10ms)
P1
P2
P3
0
213
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
10
10 20 0
20 30 0 10 20
ATT = (28+29+30)/3 = 29
quantum = 10 quantum = 1
Average Turnaround Time
= (10+20+30)/3 = 20
=> 80% CPU Burst < time slice
214. Multilevel QueueScheduling
Partition the ready queue into
several separate queues =>
Processes can be classified into
different groups and permanently
assigned to one queue.
…
214
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
System Processes
Interactive Processes
Batch Processes
215. Multilevel QueueScheduling
215
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Intra-queue scheduling
Independent choice of scheduling
algorithms.
Inter-queue scheduling
a. Fixed-priority preemptive scheduling
a. e.g., foreground queues always have absolute
priority over the background queues.
b. Time slice between queues
a. e.g., 80% CPU is given to foreground processes,
and 20% CPU to background processes.
c. More??
216. Multilevel Feedback
Queue Scheduling
216
*Inter-queue scheduling: Fixed-priority preemptive?!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Different from Multilevel Queue
Scheduling by Allowing Processes to
Migrate Among Queues.
Configurable Parameters:
a. # of queues
b. The scheduling algorithm for each queue
c. The method to determine when to upgrade a
process to a higher priority queue.
d. The method to determine when to demote a
process to a lower priority queue.
e. The method to determine which queue a newly
ready process will enter.
217. Multilevel Feedback
Queue Scheduling
Example
quantum = 8
quantum = 16
FCFS
*Idea: Separate processes with different CPU-burst
characteristics!
217
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
218. Multiple-ProcessorScheduling
218
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
CPU scheduling in a system with
multiple CPUs
A Homogeneous System
Processes are identical in terms of their
functionality.
Can processes run on any processor?
A Heterogeneous System
Programs must be compiled for
instructions on proper processors.
219. Multiple-ProcessorScheduling
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Load Sharing – Load Balancing!!
A queue for each processor
Self-Scheduling – Symmetric
Multiprocessing
A common ready queue for all processors.
Self-Scheduling
Need synchronization to access common
data structure, e.g., queues.
Master-Slave – Asymmetric Multiprocessing
One processor accesses the system
structures no need for data sharing 219
220. Real-TimeScheduling
220
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Definition
Real-time means on-time, instead of
fast!
Hard real-time systems:
Failure to meet the timing constraints
(such as deadline) of processes may
result in a catastrophe!
Soft real-time systems:
Failure to meet the timing constraints
may still contribute value to the
system.
221. Real-TimeScheduling
Dispatch Latency
1. Preemption of the running process
2. Releasing resources needed by the higher
priority process
3. Context switching to the higher priority
process
Dispatch latency
Conflicts Dispatch
221
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
222. Real-TimeScheduling
222
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Minimization of Dispatch Latency?
Context switching in many OS, e.g.,
some UNIX versions, can only be done
after a system call completes or an I/O
blocking occurs
Solutions:
1. Insert safe preemption points in long-
duration system calls.
2. Protect kernel data by some
synchronization mechanisms to make
the entire kernel preemptible.
223. Time
223
Real-TimeScheduling
Priority Inversion:
A higher-priority processes must wait for
the execution of a lower-priority
processes.
P1
P2
P3
D
Time
Time
P3 also waits for P2 to complete?
D D D V
P1
P2
P3 D
Request
for D
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
224. Time224
Real-TimeScheduling
Priority Inheritance
The blocked process inherits the
priority of the process that causes
the blocking.
P1
P2
P3
D Time
D D D V
P1
P2
P3 D
Time
Request
for D
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
225. 225
Real-TimeScheduling
Earliest Deadline First Scheduling
(EDF)
Processes with closer deadlines have
higher priorities.
( priority (i ) (1/ di ))
An optimal dynamic-priority-driven
scheduling algorithm for periodic and
aperiodic processes!
Liu & Layland [JACM 73] showed that EDF is optimal in the sense that a process set is
scheduled by EDF if its CPU utilization is no larger than 100%.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
i
i
P
C
226. 2
22
6
0
Real-TimeScheduling–EDF
process CPU Burst time Deadline Initial Arrival Time
P1 4 20 0
P2 5 15 1
P3 6 16 2
Average waiting time
=(11+0+4)/3=5
0 2
15
0 1 6 12
6 18
P1 P2 P3 P1
15
0 1 12 20
0 1 20
6 16
P3
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
12
227. 227
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
AGeneralArchitecture ofRTOS’s
Objectives in the Design of Many
RTOS’s
Efficient Scheduling Mechanisms
Good Resource Management Policies
Predictable Performance
Common Functionality of Many RTOS’s
Task Management
Memory Management
Resource Control, including devices
Process Synchronization
229. AGeneral Architecture
2-Step Interrupt Services
Immediate Interrupt Service
Interrupt priorities > process priorities
Time: Completion of higher priority ISR,
context switch, disabling of certain
interrupts, starting of the right ISR
(urgent/low-level work, set events)
Scheduled Interrupt Service
Usually done by preemptible threads
Remark: Reducing of non-preemptible
code, Priority Tracking/Inheritance
(LynxOS), etc.
ISR
I
Interrupt/ISR
Latency
Scheduled
Service
IST
Latency
229
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
230. AGeneral Architecture
230
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Scheduler
A central part in the kernel
The scheduler is usually driven by a
clock interrupt periodically, except
when voluntary context switches
occur – thread quantum?
Timer Resolution
Tick size vs Interrupt Frequency
10ms? 1ms? 1us? 1ns?
Fine-Grained hardware clock
231. AGeneral Architecture
231
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Memory Management
No protection for many embedded
systems
Memory-locking to avoid paging
Process Synchronization
Sources of Priority Inversion
Nonpreemptible code
Critical sections
A limited number of priority levels, etc.
232. AlgorithmEvaluation
232
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
A General Procedure
Select criteria that may include several
measures, e.g., maximize CPU
utilization while confining the maximum
response time to 1 second
Evaluate various algorithms
Evaluation Methods:
Deterministic modeling
Queuing models
Simulation
Implementation
233. DeterministicModeling
knowledge to be useful!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
233
A Typical Type of Analytic Evaluation
Take a particular predetermined workload
and defines the performance of each
algorithm for that workload
Properties
Simple and fast
Through excessive executions of a number of
examples, treads might be identified
But it needs exact numbers for inputs, and its
answers only apply to those cases
Being too specific and requires too exact
234. DeterministicModeling
P1
P2
P3
P4
P5
process CPU Burst time
10
29
3
7
12
61
P
3
P4 P1 P5 P2
FCFC
0 10 39 42 49 61
Average Waiting Time (AWT)=(0+10+39+42+49)/5=28
P1 P2 P3 P4 P5
Nonpreemptive Shortest Job First
0 3 10 20 32
AWT=(10+32+0+3+20)/5=13
Round Robin (quantum =10)
0 10 2023 30 40 5052 61
AWT=(0+(10+20+2)+20+23+(30+10))/5=23
P1 P2 P3 P4 P5 P2 P5 P2
235. QueueingModels
235
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Motivation:
Workloads vary, and there is no static set
of processes
Models (~ Queueing-Network Analysis)
Workload:
a. Arrival rate: the distribution of times when
processes arrive.
b. The distributions of CPU & I/O bursts
Service rate
236. QueueingModels
236
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Model a computer system as a network
of servers. Each server has a queue of
waiting processes
Compute average queue length, waiting
time, and so on.
Properties:
Generally useful but with limited
application to the classes of algorithms &
distributions
Assumptions are made to make
problems solvable => inaccurate results
237. n = # of processes in the queue
= arrival rate
= average waiting time in the queue
If n =14 & =7 processes/sec, then w =
2 seconds.
237
QueueingModels
Example: Little’s formula
n w
w steady state!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
238. 238
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Simulation
Motivation:
Get a more accurate evaluation.
Procedures:
Program a model of the computer system
Drive the simulation with various data sets
Randomly generated according to some
probability distributions
=> inaccuracy occurs because of only the
occurrence frequency of events. Miss the order &
the relationships of events.
Trace tapes: monitor the real system &
record the sequence of actual events.
239. Simulation
239
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Properties:
Accurate results can be gotten, but it
could be expensive in terms of
computation time and storage space.
The coding, design, and debugging of
a simulator can be a big job.
240. Implementation
240
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Motivation:
Get more accurate results than a
simulation!
Procedure:
Code scheduling algorithms
Put them in the OS
Evaluate the real behaviors
241. Implementation
241
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Difficulties:
Cost in coding algorithms and
modifying the OS
Reaction of users to a constantly
changing the OS
The environment in which algorithms
are used will change
For example, users may adjust their
behaviors according to the selected
algorithms
=> Separation of the policy and
mechanism!
242. ProcessSchedulingModel
242
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Process Local Scheduling
E.g., those for user-level threads
Thread scheduling is done locally to
each application.
System Global Scheduling
E.g., those for Kernel-level threads
The kernel decides which thread to
run.
243. ProcessSchedulingModel
– Solaris 2
Priority-Based Process Scheduling
Real-Time
System
Kernel-service processes
Time-Sharing
A default class
Interactive
Each LWP inherits its class from its
parent process
low
243
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
244. ProcessSchedulingModel
– Solaris 2
Prefer windowing process
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
244
Real-Time
A guaranteed response
System
The priorities of system processes are
fixed.
Time-Sharing
Multilevel feedback queue scheduling
– priorities inversely proportional to
time slices
Interactive
245. ProcessSchedulingModel
– Solaris 2
245
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The selected thread runs until one of
the following occurs:
It blocks.
It uses its time slice (if it is not a
system thread).
It is preempted by a higher-priority
thread.
RR is used when several threads
have the same priority.
246. ProcessSchedulingModel
– Windows2000
246
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Priority-Based Preemptive Scheduling
Priority Class/Relationship: 0..31
Dispatcher: A process runs until
It is preempted by a higher-priority process.
It terminates
Its time quantum ends
It calls a blocking system call
Idle thread
A queue per priority level
247. ProcessSchedulingModel
– Windows2000
quantum)
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
247
Each thread has a base priority that
represents a value in the priority range of
its class.
A typical class – Normal_Priority_Class
Time quantum – thread
Increased after some waiting
Different for I/O devices.
Decreased after some computation
The priority is never lowered below the base
priority.
Favor foreground processes (more time
248. 248
ProcessSchedulingModel –
Windows2000
Real-
time
High Above
normal
Normal Below
normal
Idle
priority
Time-
critical
31 15 15 15 15 15
Highest 26 15 12 10 8 6
Above
normal
25 14 11 9 7 5
Normal 24 13 10 8 6 4
Below
normal
23 12 9 7 5 3
Lowest 22 11 8 6 4 2
Idle 16 1 1 1 1 1
Variable Class (1..15)
Real-Time Class
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Base
Priority
A Typical Class
249. ProcessSchedulingModel
– Linux
249
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
Three Classes (POSIX.1b)
Time-Sharing
Soft Real-Time: FCFS, and RR
Real-Time Scheduling Algorithms
FCFS & RR always run the highest
priority process.
FCFS runs a process until it exits or
blocks.
No scheduling in the kernel space for
conventional Linux
250. ProcessSchedulingModel
– Linux
250
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
A Time-Sharing Algorithm for Fairness
Credits = (credits / 2) + priority
Recrediting when no runnable process
has any credits.
Mixture of a history and its priority
Favor interactive or I/O-bound
processes
Background processes could be given
lower priorities to receive less credits.
nice in UNIX
251. Contents
1. Introduction
2. Computer-System Structures
3. Operating-System Structures
4. Processes
5. Threads
6. CPU Scheduling
7. Process Synchronization
8. Deadlocks
9. Memory Management
10.Virtual Memory
11.File Systems
251
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
253. 253
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
ProcessSynchronization
Why Synchronization?
To ensure data consistency for
concurrent access to shared data!
Contents:
Various mechanisms to ensure the
orderly execution of cooperating
processes
254. ProcessSynchronization
A Consumer-Producer Example
Consumer:
while (1) {
while (counter == 0)
;
nextc = buffer[out];
out = (out +1) % BUFFER_SIZE;
counter--;
consume an item in nextc;
}
Producer
while (1) {
while (counter == BUFFER_SIZE)
;
produce an item in nextp;
….
buffer[in] = nextp;
in = (in+1) % BUFFER_SIZE;
counter++;
}
256. ProcessSynchronization
256
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
A Race Condition:
A situation where the outcome of the
execution depends on the particular
order of process scheduling.
The Critical-Section Problem:
Design a protocol that processes can
use to cooperate.
Each process has a segment of code,
called a critical section, whose
execution must be mutually exclusive.
257. ProcessSynchronization
permission request
exit notification
A General Structure for the Critical-
Section Problem
do {
entry section;
critical section;
exit section;
remainder section;
} while (1);
257
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
258. Three Requirements
1. Mutual Exclusion
a. Only one process can be in its critical section.
2. Progress
a. Only processes not in their remainder section can
decide which will enter its critical section.
b. The selection cannot be postponed indefinitely.
3. Bounded Waiting
a. A waiting process only waits for a bounded
number of processes to enter their critical
sections.
258
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2004.
The Critical-Section Problem