Processes, Address Spaces, and Context Switches
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Operating System Support for Parallel Processes
Operating System Support for Parallel Processes Barret Rhoden Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2014-223 http://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-223.html December 18, 2014 Copyright © 2014, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Operating System Support for Parallel Processes by Barret Joseph Rhoden A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Eric Brewer, Chair Professor Krste Asanovi´c Professor David Culler Professor John Chuang Fall 2014 Operating System Support for Parallel Processes Copyright 2014 by Barret Joseph Rhoden 1 Abstract Operating System Support for Parallel Processes by Barret Joseph Rhoden Doctor of Philosophy in Computer Science University of California, Berkeley Professor Eric Brewer, Chair High-performance, parallel programs want uninterrupted access to physical resources. This characterization is true not only for traditional scientific computing, but also for high- priority data center applications that run on parallel processors. These applications require high, predictable performance and low latency, and they are important enough to warrant engineering effort at all levels of the software stack. -
Sched-ITS: an Interactive Tutoring System to Teach CPU Scheduling Concepts in an Operating Systems Course
Wright State University CORE Scholar Browse all Theses and Dissertations Theses and Dissertations 2017 Sched-ITS: An Interactive Tutoring System to Teach CPU Scheduling Concepts in an Operating Systems Course Bharath Kumar Koya Wright State University Follow this and additional works at: https://corescholar.libraries.wright.edu/etd_all Part of the Computer Engineering Commons, and the Computer Sciences Commons Repository Citation Koya, Bharath Kumar, "Sched-ITS: An Interactive Tutoring System to Teach CPU Scheduling Concepts in an Operating Systems Course" (2017). Browse all Theses and Dissertations. 1745. https://corescholar.libraries.wright.edu/etd_all/1745 This Thesis is brought to you for free and open access by the Theses and Dissertations at CORE Scholar. It has been accepted for inclusion in Browse all Theses and Dissertations by an authorized administrator of CORE Scholar. For more information, please contact [email protected]. SCHED – ITS: AN INTERACTIVE TUTORING SYSTEM TO TEACH CPU SCHEDULING CONCEPTS IN AN OPERATING SYSTEMS COURSE A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science By BHARATH KUMAR KOYA B.E, Andhra University, India, 2015 2017 Wright State University WRIGHT STATE UNIVERSITY GRADUATE SCHOOL April 24, 2017 I HEREBY RECOMMEND THAT THE THESIS PREPARED UNDER MY SUPERVISION BY Bharath Kumar Koya ENTITLED SCHED-ITS: An Interactive Tutoring System to Teach CPU Scheduling Concepts in an Operating System Course BE ACCEPTED IN PARTIAL FULFILLMENT OF THE REQIREMENTS FOR THE DEGREE OF Master of Science. _____________________________________ Adam R. Bryant, Ph.D. Thesis Director _____________________________________ Mateen M. Rizki, Ph.D. Chair, Department of Computer Science and Engineering Committee on Final Examination _____________________________________ Adam R. -
Operating Systems (Undergrad): Spring 2020 Midterm Exam
New York University CSCI-UA.202: Operating Systems (Undergrad): Spring 2020 Midterm Exam • This exam is 75 minutes. • The answer sheet is available here: – Section 001 (Aurojit Panda) – Section 003 (Michael Walfish) The answer sheet has the hand-in instructions and the video upload instructions. • There are 14 problems in this booklet. Many can be answered quickly. Some may be harder than others, and some earn more points than others. You may want to skim all questions before starting. • This exam is closed book and notes. You may not use electronics: phones, tablets, calculators, laptops, etc. You may refer to ONE two-sided 8.5x11” sheet with 10 point or larger Times New Roman font, 1 inch or larger margins, and a maximum of 55 lines per side. • Do not waste time on arithmetic. Write answers in powers of 2 if necessary. • If you find a question unclear or ambiguous, be sure to write any assumptions you make. • Follow the instructions: if they ask you to justify something, explain your reasoning and any important assumptions. Write brief, precise answers. Rambling brain dumps will not work and will waste time. Think before you start writing so that you can answer crisply. Be neat. If we can’t understand your answer, we can’t give you credit! • If the questions impose a sentence limit, we will not read past that limit. In addition, a response that includes the correct answer, along with irrelevant or incorrect content, will lose points. • Don’t linger. If you know the answer, give it, and move on. -
Automatic Collection of Leaked Resources
IEICE TRANS. INF. & SYST., VOL.E96–D, NO.1 JANUARY 2013 28 PAPER Resco: Automatic Collection of Leaked Resources Ziying DAI†a), Student Member, Xiaoguang MAO†b), Nonmember, Yan LEI†, Student Member, Xiaomin WAN†, and Kerong BEN††, Nonmembers SUMMARY A garbage collector relieves programmers from manual rent approaches either strive to detect and fix these leaks memory management and improves productivity and program reliability. or provide new language features to simplify resource man- However, there are many other finite system resources that programmers agement [2], [3], [5]–[8]. Although these approaches can must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even achieve success to some extent, there are some escaped re- program crashes. This paper presents the automatic resource collection source leaks that manifest themselves after programs have approach called Resco (RESource COllector) to tolerate non-memory re- been deployed. We also note that similar to memory leaks, source leaks. Resco prevents performance degradation and crashes due to leaks of other resources are not necessarily a problem. A resource leaks by two steps. First, it utilizes monitors to count resource ff consumption and request resource collections independently of memory few or a small amount of leaked resources will neither a ect usage when resource limits are about to be violated. Second, it responds program behavior nor performance. Only when accumu- to a resource collection request by safely releasing leaked resources. We lated leaks exhaust all available resources or lead to large ex- implement Resco based on a Java Virtual Machine for Java programs. -
Scheduling: Introduction
7 Scheduling: Introduction By now low-level mechanisms of running processes (e.g., context switch- ing) should be clear; if they are not, go back a chapter or two, and read the description of how that stuff works again. However, we have yet to un- derstand the high-level policies that an OS scheduler employs. We will now do just that, presenting a series of scheduling policies (sometimes called disciplines) that various smart and hard-working people have de- veloped over the years. The origins of scheduling, in fact, predate computer systems; early approaches were taken from the field of operations management and ap- plied to computers. This reality should be no surprise: assembly lines and many other human endeavors also require scheduling, and many of the same concerns exist therein, including a laser-like desire for efficiency. And thus, our problem: THE CRUX: HOW TO DEVELOP SCHEDULING POLICY How should we develop a basic framework for thinking about scheduling policies? What are the key assumptions? What metrics are important? What basic approaches have been used in the earliest of com- puter systems? 7.1 Workload Assumptions Before getting into the range of possible policies, let us first make a number of simplifying assumptions about the processes running in the system, sometimes collectively called the workload. Determining the workload is a critical part of building policies, and the more you know about workload, the more fine-tuned your policy can be. The workload assumptions we make here are mostly unrealistic, but that is alright (for now), because we will relax them as we go, and even- tually develop what we will refer to as .. -
State-Taint Analysis for Detecting Resource Bugs
JID:SCICO AID:2114 /FLA [m3G; v1.218; Prn:10/07/2017; 11:30] P.1(1-17) Science of Computer Programming ••• (••••) •••–••• Contents lists available at ScienceDirect Science of Computer Programming www.elsevier.com/locate/scico State-taint analysis for detecting resource bugs ∗ Zhiwu Xu a, Cheng Wen a, Shengchao Qin b,a, a College of Computer Science and Software Engineering, Shenzhen University, China b School of Computing, Teesside University, UK a r t i c l e i n f o a b s t r a c t Article history: To ensure that a program uses its resources in an appropriate manner is vital for program Received 3 January 2017 correctness. A number of solutions have been proposed to check that programs meet such Received in revised form 20 June 2017 a property on resource usage. But many of them are sophisticated to use for resource Accepted 25 June 2017 bug detection in practice and do not take into account the expectation that a resource Available online xxxx should be used once it is opened or required. This open-but-not-used problem can cause Keywords: resource starvation in some cases, for example, smartphones or other mobile devices where Resource bug resources are not only scarce but also energy-hungry, hence inappropriate resource usage Static analysis can not only cause the system to run out of resources but also lead to much shorter battery Energy leak life between battery recharge. That is the so-call energy leak problem. Android In this paper, we propose a static analysis called state-taint analysis to detect resource bugs. -
Debug Your Threading and Memory Errors
Kevin O’Leary Intel SPDK, PMDK, Intel® Performance Analyzers Virtual Forum 01 Intel Inspector overview 02 Intel Inspector features 03 Summary SPDK, PMDK, Intel® Performance Analyzers Virtual Forum 2 Intel® Trace Analyzer Cluster N Scalable Tune MPI & Collector (ITAC) ? Intel APS Intel MPI Tuner Y Memory Effective Y Bandwidth N threading Vectorize Sensitive ? Intel® Inspector ? N Find any Y correctness errors Optimize Thread in your threads and bandwidth memory! Intel® Intel® Intel® VTune™ Profiler Advisor VTune™ Profiler SPDK, PMDK, Intel® Performance Analyzers Virtual Forum 3 Size and complexity of Correctness tools find defects applications is growing during development prior to shipment Reworking defects is 40%-50% Reduce time, effort, and of total project effort cost to repair Find errors earlier when they are less expensive to fix SPDK, PMDK, Intel® Performance Analyzers Virtual Forum 4 Debugger Breakpoints Correctness Tools Increase ROI By 12%-21%1 ▪ Errors found earlier are less expensive to fix ▪ Several studies, ROI% varies, but earlier is cheaper Diagnosing Some Errors Can Take Months ▪ Races & deadlocks not easily reproduced ▪ Memory errors can be hard to find without a tool Intel® Inspector dramatically sped up Debugger Integration Speeds Diagnosis our ability to track down difficult to isolate threading errors before our ▪ Breakpoint set just before the problem packages are released to the field. ▪ Examine variables & threads with the debugger Peter von Kaenel, Director, Diagnose in hours instead of months Software Development, -
Unit-Iv Process,Signals and File Locking
UNIT-IV PROCESS, SIGNALS AND FILE LOCKING III-I R14 - 14BT50502 PROCESS: When you execute a program on your UNIX system, the system creates a special environment for that program. This environment contains everything needed for the system to run the program as if no other program were running on the system. Whenever you issue a command in UNIX, it creates, or starts, a new process. When you tried out the ls command to list directory contents, you started a process. A process, in simple terms, is an instance of a running program. When you start a process (run a command), there are two ways you can run it − Foreground Processes Background Processes FOREGROUND PROCESSES: By default, every process that you start runs in the foreground. It gets its input from the keyboard and sends its output to the screen. Example: $ls ch*.doc When a program is running in foreground and taking much time, we cannot run any other commands (start any other processes) because prompt would not be available until program finishes its processing and comes out. BACKGROUND PROCESSES: A background process runs without being connected to your keyboard. If the background process requires any keyboard input, it waits. The advantage of running a process in the background is that you can run other commands; you do not have to wait until it completes to start another! The simplest way to start a background process is to add an ampersand (&) at the end of the command. Example: $ls ch*.doc & PROCESS IDENTIFIERS: The process identifier – normally referred to as the process ID or just PID, is a number used by most operating system kernels such as that of UNIX, Mac OS X or Microsoft Windows — to uniquely identify an active process. -
State-Taint Analysis for Detecting Resource Bugs
State-Taint Analysis for Detecting Resource Bugs Zhiwu Xu1 Dongxiao Fan1 Shengchao Qin2,1 1 College of Computer Science and Software Engineering, Shenzhen University, China 2 School of Computing, Teesside University, UK Email: [email protected], [email protected], [email protected] Abstract—To verify whether a program uses resources in it unused/unattended, in other cases this may lead to a valid manner is vital for program correctness. A number of more severe problems. For instance, when some resource solutions have been proposed to ensure such a property for is very limited and is not released timely, this issue can resource usage. But most of them are sophisticated to use for resource bugs detection in practice and do not concern about lead to a major problem, causing resource starvation the issue that an opened resource should be used. This open- and severe system slowdown or instability. Specifically, but-not-used problem can cause resource starvation in some for mobile devices, such as tablets and smartphones, case as well. In particular, resources of smartphones are not which have become hugely popular, the resource is only scarce but also energy-hungry. The misuse of resources rather limited, specially power energy (i.e. the battery could not only cause the system to run out of resources but also lead to a shorter battery life. That is the so-call energy capacity). Most resources of mobile devices are not only leak problem. scarce but also energy-hungry, such as GPS, WiFi, camera, Aiming to provide a lightweight method and to detect and so on. -
Contributions for Resource and Job Management in High Performance Computing Yiannis Georgiou
Contributions for Resource and Job Management in High Performance Computing Yiannis Georgiou To cite this version: Yiannis Georgiou. Contributions for Resource and Job Management in High Performance Computing. Distributed, Parallel, and Cluster Computing [cs.DC]. Université de Grenoble, 2010. English. tel- 01499598 HAL Id: tel-01499598 https://hal-auf.archives-ouvertes.fr/tel-01499598 Submitted on 31 Mar 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Public Domain THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Informatique Arrêté ministériel : 7 août 2006 Présentée par « Yiannis GEORGIOU » Thèse dirigée par « Olivier RICHARD » et codirigée par « Jean-Francois MEHAUT » préparée au sein du Laboratoire d'Informatique de Grenoble dans l'École Doctorale de Mathématiques, Sciences et Technologies de l'Information, Informatique Contributions for Resource and Job Management in High Performance Computing Thèse soutenue publiquement le « 5 novembre 2010 », devant le jury composé de : M. Daniel, HAGIMONT Professeur à INPT/ENSEEIHT, France, Président M. Franck, CAPPELLO Directeur de Recherche à INRIA, France, Rapporteur M. William T.C., KRAMER Directeur de Recherche à NCSA, USA, Rapporteur M. Morris, JETTE Informaticien au LLNL, USA, Membre Mme. -
Operating Systems Processes and Threads
COS 318: Operating Systems Processes and Threads Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318 Today’s Topics Processes Concurrency Threads Reminder: Hope you’re all busy implementing your assignment 2 (Traditional) OS Abstractions Processes - thread of control with context Files- In Unix, this is “everything else” Regular file – named, linear stream of data bytes Sockets - endpoints of communication, possible between unrelated processes Pipes - unidirectional I/O stream, can be unnamed Devices Process Most fundamental concept in OS Process: a program in execution one or more threads (units of work) associated system resources Program vs. process program: a passive entity process: an active entity For a program to execute, a process is created for that program Program and Process main() main() { { heap ... ... foo() foo() ... ... } } stack bar() bar() { { registers ... ... PC } } Program Process 5 Process vs. Program Process > program Program is just part of process state Example: many users can run the same program • Each process has its own address space, i.e., even though program has single set of variable names, each process will have different values Process < program A program can invoke more than one process Example: Fork off processes 6 Simplest Process Sequential execution No concurrency inside a process Everything happens sequentially Some coordination may be required Process state Registers Main memory I/O devices • File system • Communication ports … 7 Process Abstraction Unit of scheduling One (or more*) sequential threads of control program counter, register values, call stack Unit of resource allocation address space (code and data), open files sometimes called tasks or jobs Operations on processes: fork (clone-style creation), wait (parent on child), exit (self-termination), signal, kill. -
1. Introduction to Concurrent Programming the Operating System Allocates the CPU(S) Among the Processes/Threads in the System
1. Introduction to Concurrent Programming The operating system allocates the CPU(s) among the processes/threads in the system: the operating systems selects the process and the process selects the thread, or the threads are scheduled directly by the operating system. A concurrent program contains two or more threads that execute concurrently and work together to perform some task. In general, each ready thread receives a time-slice (called a quantum) of the CPU. If a thread waits for something, it relinquishes the CPU. When a program is executed, the operating system creates a process containing the code When a running thread’s quantum has completed, the thread is preempted to allow and data of the program and manages the process until the program terminates. another ready thread to run. Switching the CPU from one process or thread to another is known as a context switch. Per-process state information: the process’ state, e.g., ready, running, waiting, or stopped ¡ multiple CPUs multiple threads can execute at the same time. the program counter, which contains the address of the next instruction to be executed ¡ single CPU threads take turns running for this process saved CPU register values The scheduling policy may also consider a thread’s priority. We assume that the memory management information (page tables and swap files), file descriptors, and scheduling policy is fair, which means that every ready thread eventually gets to execute. outstanding I/O requests Multiprocessing operating systems enable several programs/processes to execute simultaneously. A thread is a unit of control within a process: when a thread runs, it executes a function in the program - the “main thread” executes the “main” function and other threads execute other functions.