Unix Processes
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
IEEE Std 1003.1-2008
This preview is downloaded from www.sis.se. Buy the entire standard via https://www.sis.se/std-911530 INTERNATIONAL ISO/IEC/ STANDARD IEEE 9945 First edition 2009-09-15 Information technology — Portable Operating System Interface (POSIX®) Base Specifications, Issue 7 Technologies de l'information — Spécifications de base de l'interface pour la portabilité des systèmes (POSIX ®), Issue 7 Reference number ISO/IEC/IEEE 9945:2009(E) Copyright © 2001-2008, IEEE and The Open Group. All rights reserved This preview is downloaded from www.sis.se. Buy the entire standard via https://www.sis.se/std-911530 ISO/IEC/IEEE 9945:2009(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. Neither the ISO Central Secretariat nor IEEE accepts any liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies and IEEE members. In the unlikely event that a problem relating to it is found, please inform the ISO Central Secretariat or IEEE at the address given below. -
Operating Systems Processes
Operating Systems Processes Eno Thereska [email protected] http://www.imperial.ac.uk/computing/current-students/courses/211/ Partly based on slides from Julie McCann and Cristian Cadar Administrativia • Lecturer: Dr Eno Thereska § Email: [email protected] § Office: Huxley 450 • Class website http://www.imperial.ac.uk/computing/current- students/courses/211/ 2 Tutorials • No separate tutorial slots § Tutorials embedded in lectures • Tutorial exercises, with solutions, distributed on the course website § You are responsible for studying on your own the ones that we don’t cover during the lectures § Let me know if you have any questions or would like to discuss any others in class 3 Tutorial question & warmup • List the most important resources that must be managed by an operating system in the following settings: § Supercomputer § Smartphone § ”Her” A lonely writer develops an unlikely relationship with an operating system designed to meet his every need. Copyright IMDB.com 4 Introduction to Processes •One of the oldest abstractions in computing § An instance of a program being executed, a running program •Allows a single processor to run multiple programs “simultaneously” § Processes turn a single CPU into multiple virtual CPUs § Each process runs on a virtual CPU 5 Why Have Processes? •Provide (the illusion of) concurrency § Real vs. apparent concurrency •Provide isolation § Each process has its own address space •Simplicity of programming § Firefox doesn’t need to worry about gcc •Allow better utilisation of machine resources § Different processes require different resources at a certain time 6 Concurrency Apparent Concurrency (pseudo-concurrency): A single hardware processor which is switched between processes by interleaving. -
Openextensions POSIX Conformance Document
z/VM Version 7 Release 1 OpenExtensions POSIX Conformance Document IBM GC24-6298-00 Note: Before you use this information and the product it supports, read the information in “Notices” on page 73. This edition applies to version 7, release 1, modification 0 of IBM z/VM (product number 5741-A09) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2018-09-12 © Copyright International Business Machines Corporation 1993, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents List of Tables........................................................................................................ ix About This Document............................................................................................xi Intended Audience......................................................................................................................................xi Conventions Used in This Document.......................................................................................................... xi Where to Find More Information.................................................................................................................xi Links to Other Documents and Websites.............................................................................................. xi How to Send Your Comments to IBM....................................................................xiii Summary of Changes for z/VM -
System Calls & Signals
CS345 OPERATING SYSTEMS System calls & Signals Panagiotis Papadopoulos [email protected] 1 SYSTEM CALL When a program invokes a system call, it is interrupted and the system switches to Kernel space. The Kernel then saves the process execution context (so that it can resume the program later) and determines what is being requested. The Kernel carefully checks that the request is valid and that the process invoking the system call has enough privilege. For instance some system calls can only be called by a user with superuser privilege (often referred to as root). If everything is good, the Kernel processes the request in Kernel Mode and can access the device drivers in charge of controlling the hardware (e.g. reading a character inputted from the keyboard). The Kernel can read and modify the data of the calling process as it has access to memory in User Space (e.g. it can copy the keyboard character into a buffer that the calling process has access to) When the Kernel is done processing the request, it restores the process execution context that was saved when the system call was invoked, and control returns to the calling program which continues executing. 2 SYSTEM CALLS FORK() 3 THE FORK() SYSTEM CALL (1/2) • A process calling fork()spawns a child process. • The child is almost an identical clone of the parent: • Program Text (segment .text) • Stack (ss) • PCB (eg. registers) • Data (segment .data) #include <sys/types.h> #include <unistd.h> pid_t fork(void); 4 THE FORK() SYSTEM CALL (2/2) • The fork()is one of the those system calls, which is called once, but returns twice! Consider a piece of program • After fork()both the parent and the child are .. -
Troubleshoot Zombie/Defunct Processes in UC Servers
Troubleshoot Zombie/Defunct Processes in UC Servers Contents Introduction Prerequisites Requirements Components Used Background Information Check Zombies using UCOS Admin CLI Troubleshoot/Clear the Zombies Manually Restart the Appropriate Service Reboot the Server Kill the Parent Process Verify Introduction This document describes how to work with zombie processes seen on CUCM, IMnP, and other Cisco UC products when logged in using Admin CLI. Prerequisites Requirements Cisco recommends that you have knowledge of using Admin CLI of the UC servers: ● Cisco Unified Communications Manager (CUCM) ● Cisco Unified Instant Messaging and Presence Server (IMnP) ● Cisco Unity Connection Server (CUC) Components Used This document is not restricted to specific software and hardware versions. The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command. Background Information The Unified Communications servers are essentially Linux OS based applications. When a process dies on Linux, it is not all removed from memory immediately, its process descriptor (PID) stays in memory which only takes a tiny amount of memory. This process becomes a defunct process and the process's parent is notified that its child process has died. The parent process is then supposed to read the dead process's exit status and completely remove it from the memory. Once this is done using the wait() system call, the zombie process is eliminated from the process table. This is known as reaping the zombie process. -
Process Relationships (Chapter 9 )
Process Relationships (Chapter 9 ) Terminal Logins & Network Logins Process Groups and Sessions Job Control Relationships explained with examples Amy Lin, UAH 6/25/2019 Terminal Login Procedure init getty login shell “init” • At old time, the sysadmin would create a text file called /etc/ttys, each line would specify the device name and other parameters passed to getty • On Linux, the information is in /etc/inittab, a typical line in inittab is - 5:2345:respawn:/sbin/mingetty tty5 (man 5 inittab) - mingetty is almost the same as getty except it’s not suitable for serial line connections , you might consider to use (m)getty if dialup connection is needed. • On system startup, init reads inittab to get terminal information and fork/exec a “getty” process for each terminal “getty” • Calls open for the terminal device (read and write) • Opens descriptors 0, 1, and 2 to the device and outputs “login:” • Waits for someone to enter a user name Amy Lin, UAH 6/25/2019 The “login” After user enters a user name, login invokes exec function execle(“/bin/login”, “login”, “-p”, username, (char*)0, envp); • login calls “getpwnam” to fetch the password file entry • login reads the entered password, call crypt (3) to encrypt the password then compare to the encrypted password file entry • If log incorrectly, login exits with “1”, init then respawns getty to start over In successful login, login performs the following - Change to user’s home directory - Change permissions of terminal device so we can read from and write to it - Set group IDs - Initialize environment variables, such as PATH, HOME, SHELL, USER, LOGNAME Amy Lin, UAH 6/25/2019 The “shell” At the end of login process, a login shell is invoked with fork/exec execl(“/bin/sh”,“-sh”,(char*)0) - The prefix “-” before argv[0] is a flag to all the shells that they are being invoked as a login shell. -
Processes in Linux/Unix
Processes in Linux/Unix A program/command when executed, a special instance is provided by the system to the process. This instance consists of all the services/resources that may be utilized by the process under execution. • Whenever a command is issued in unix/linux, it creates/starts a new process. For example, pwd when issued which is used to list the current directory location the user is in, a process starts. • Through a 5 digit ID number unix/linux keeps account of the processes, this number is call process id or pid. Each process in the system has a unique pid. • Used up pid’s can be used in again for a newer process since all the possible combinations are used. • At any point of time, no two processes with the same pid exist in the system because it is the pid that Unix uses to track each process. Initializing a process A process can be run in two ways: 1. Foreground Process : Every process when started runs in foreground by default, receives input from the keyboard and sends output to the screen. When issuing pwd command $ ls pwd Output: $ /home/geeksforgeeks/root When a command/process is running in the foreground and is taking a lot of time, no other processes can be run or started because the prompt would not be available until the program finishes processing and comes out. 2. Backround Process : It runs in the background without keyboard input and waits till keyboard input is required. Thus, other processes can be done in parallel with the process running in background since they do not have to wait for the previous process to be completed. -
C-Balancer: a System for Container Profiling and Scheduling
1 C-Balancer: A System for Container Profiling and Scheduling Akshay Dhumal∗, Dharanipragada Janakiramy Department of Computer Science, Indian Institute of Technology Madras Email: ∗[email protected], [email protected] Abstract—Linux containers have gained high popularity in that can be grouped under namespaces are process PID, file recent times. This popularity is significantly due to various advan- system mount points, interprocess communication, network, tages of containers over Virtual Machines (VM). The containers etc. The resource management for a container is done by are lightweight, occupy lesser storage, have fast boot up time, easy to deploy and have faster auto-scaling. The key reason control groups (cgroups) [5], that limits the resource usage behind the popularity of containers is that they leverage the per process group. Using cgroups, it is possible to bound the mechanism of micro-service style software development, where resources (CPU, memory, I/O) of a container. The OS based applications are designed as independently deployable services. container virtualization significantly gained mass attention and There are various container orchestration tools for deploying and adoption with the release of Docker, which is a container managing the containers in the cluster. The prominent among them are Docker Swarm, and Kubernetes. However, they do orchestration and management tool designed to simplify the not address the effects of resource contention when multiple creation and deployment of containers on a single host. With containers are deployed on a node. Moreover, they do not provide the growing usage and popularity, the containers were seen as support for container migration in the event of an attack or a replacement for VM in public and private cloud operations. -
RED HAT ENTERPRISE LINUX FEATURE BRIEF Application-Optimized Infrastructure with Containers
RED HAT ENTERPRISE LINUX FEATURE BRIEF Application-optimized infrastructure with containers TECHNOLOGY BRIEF Four key elements that an Linux containers combine the flexibility of image-based deployment with lightweight application operating system should isolation. Developers choose Linux containers because they simplify application deployment. And implement that are also many Platform-as-a-Service (PaaS) architectures are built around Linux container technology — addressed by Linux containers: including OpenShift by Red Hat. • Resource management Red Hat® Enterprise Linux® 7 beta implements Linux containers using core technologies like control groups (cgroups) for resource management, namespaces for process isolation, and Security- • Process isolation Enhanced Linux (SELinux) for security. This allows secure multi-tenancy and reduces the potential • Security for security exploits. • Tooling For managing containers in Red Hat Enterprise Linux 7 beta, Docker provides a native toolkit for manipulating core system capabilities such as: • cgroups • namespaces • network interfaces • firewalls • kernel features Red Hat container certification ensures that application containers built using Red Hat Enterprise Linux will operate seamlessly across certified container hosts. FEATURES AND CAPABILITIES RESOURCE MANAGEMENT Resource management for containers is based on cgroups, which allow users to allocate CPU time, system memory, network bandwidth, block IO, or any combination of these resources to a set of user-defined task groups or processes running on a given system. Users can then monitor any cgroups they configure, deny cgroups access to certain resources, and even dynamically reconfigure cgroups on a running system. Cgroups give system administrators fine-grained control over allocat- ing, prioritizing, denying, managing, and monitoring system resources. Hardware resources can be divided among tasks and users, often increasing overall system efficiency. -
CENG251: Assignment #5
Out: March 30, 2021 Due: Wed Apr 14, 2021 There are 30 marks. Please keep and submit a time log to account for what you’ve done. CENG251: Assignment #5 Part I: C Language Features (8 marks) In class we demonstrated re-entrant code by comparing the use of ctime vs ctime_r. We showed that ctime always returned the same memory location and that ctime_r avoided this problem by passing the memory to be filled which was then returned with a different result; Write a single small C program that 1. Demonstrates that getpwuid and getpwnam are not reentrant by calling each of these twice with different valid arguments and displaying the return address and the content of the passwd structure returned. Prepare your output string using fmemopen and then writing the output to a string using a file pointer before writing the string to the terminal. An example of using fmemopen can be found in the example program stringIODemo.c (3) 2. Continue the program and call getpwuid_r and getpwnam_r with correct arguments. Prepare your output string using sprintf and then display the string to the terminal. Examples of long structured format strings can be seen in the example program stringIODemo.c (3) 3. In ctimeDemo.c we demonstrated the use of strdup to preserve the result of ctime from one function call to the next. Use malloc and memcpy to do the same for getpwuid and show that this worked displaying the values from the copy. (2) Part II: Signals (8 marks) The following exercises should be done as a single program. -
Project Shell 2 Due: November 6, 2019 at 11:59Pm
CSCI0330 Intro Computer Systems Doeppner Project Shell 2 Due: November 6, 2019 at 11:59pm 1 Introduction 2 Before you write any code, read this handout in its entirety. 2 2 Assignment 2 2.1 Stencil 2 2.2 Jobs vs. Processes 3 2.3 Foreground vs. Background 3 2.4 Specifications 3 3 Signals 5 3.0 Sending Signals 6 3.1 Ignoring Signals 6 3.2 Signal Handling in the Child Process 6 3.3 Process Groups 6 4 Multiple Jobs 7 4.1 Process State 8 5 Reaping 8 5.1 Reaping a Child Process 9 6 fg and bg 10 7 Support Code 10 8 Library Functions 12 9 Testing Your Shell 12 9.1 Format of the Tracefiles 13 9.2 Test Executables 13 9.3 Demo 13 9.4 Error Checking 13 9.5 Shell Clean Up 13 10 GDB Tips for Shell 2 14 10.1 handle signal 14 10.2 catch signal 14 11 Grading 14 1 CSCI0330 Project Shell 2 October 31, 2018 12 Handing In 14 1 Introduction Tom was drifting through the water with his new chum the magic conch. Suddenly, an enormous tentacle emerged from the depths of the ocean and speared into the heart of his friend, splitting the shell evenly in two. Tom was otterly overwhelmed with emocean and blinked mildly, looking at his friends, shell_1 and shell_2. Shell_2 was trying to communicate, but Tom couldn’t quite catch the signals. Kelp Tom reestablish connection with his shelly friends. CTRL-\. Now, your shell can run only one program at a time since it runs programs in the foreground, occupying the entire shell. -
A Guide to Inter-Process Communication in Linux
Opensource.com A guide to inter-process communication in Linux Learn how processes synchronize with each other in Linux. By Marty Kalin . A GUIDE TO INTER-PROCESS COMMUNICATION IN LINUX . CC BY-SA 4.0 . OPENSOURCE.COM 1 OPENSOURCE.COM ..................................................................... ABOUT OPENSOURCE.COM What is Opensource.com? publishes stories about creating, OPENSOURCE.COM adopting, and sharing open source solutions. Visit Opensource.com to learn more about how the open source way is improving technologies, education, business, government, health, law, entertainment, humanitarian efforts, and more. Submit a story idea: opensource.com/story Email us: [email protected] . 2 A GUIDE TO INTER-PROCESS COMMUNICATION IN LINUX . CC BY-SA 4.0 . OPENSOURCE.COM . ABOUT THE AUTHOR MARTY KALIN IN COMPUTER SCIENCE (College of Computing and I ’M AN ACADEMIC Digital Media, DePaul University) with wide experience in software development, mostly in production planning and scheduling (steel industry) and product configuration (truck and bus manufacturing). Details on books and other publications are available at: Marty Kalin’s hompage FO OLL W MARTY KALIN T witter: @kalin_martin . A GUIDE TO INTER-PROCESS COMMUNICATION IN LINUX . CC BY-SA 4.0 . OPENSOURCE.COM 3 OPENSOURCE.COM ..................................................................... INTRODUCTION Introduction 5 CHAPTERS Shared storage 6 Using pipes and message queues 12 Sockets and signals 19 Wrapping up this guide 24 GET INVOLVED | ADDITIONAL RESOURCES Write for Us 25 . 4 A GUIDE TO INTER-PROCESS COMMUNICATION IN LINUX . CC BY-SA 4.0 . OPENSOURCE.COM . INTRODUCTION Introduction interprocess communication (ipc) in Linux. The THIS GUIDE IS AboUT guide uses code examples in C to clarify the following IPC mechanisms: • Shared files • Shared memory (with semaphores) • Pipes (named and unnamed) • Message queues • Sockets • Signals I’ll introduce you to some core concepts before moving on to the first two of these mech- anisms: shared files and shared memory.