1 / 24

Controlling Processes

Controlling Processes. Chapter 4. Introduction. A process is the abstraction used by UNIX to represent a running process. It is the object through which a program’s use of memory, processor time, and I/O resources can be managed and monitored. Introduction.

kdelapaz
Télécharger la présentation

Controlling Processes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Controlling Processes Chapter 4

  2. Introduction • A process is the abstraction used by UNIX to represent a running process. • It is the object through which a program’s use of • memory, • processor time, • and I/O resources can be managed and monitored Chapter 4 - Controlling Processes

  3. Introduction • It is part of the UNIX philosophy that as much work as possible be done within the context of processes, rather than be handled specially by the kernel. • Although portions of the kernel cannot be made to fit this model, it is used by most system software. • System and user processes all follow the same rules, so you can use a single set of tools to control them both. Chapter 4 - Controlling Processes

  4. 1. Components of a Process • Introduction: • A process consists of an address space and a set of data structures within the kernel. • The address space is a set of memory pages that the kernel has marked for the process’s use. • It contains the code and libraries that the process is executing, the process’s variables, its stacks, and various extra information needed by the kernel while the process is running. Chapter 4 - Controlling Processes

  5. 1. Components of a Process • The kernel’s internal data structures record various pieces of information about each process. • Some of the more important of these are: • The process’s address space map • The current status of the process (sleeping, stopped, runnable, ..) • The execution priority of the process • Information about the resources the process has used (for accounting purposes) • The process’s signal mask (which signals are blocked) • The owner of the process. • Now let’s look at the meaning and significance of the parameters that are interesting from the system administrator’s point of view. Chapter 4 - Controlling Processes

  6. 1. Components of a Process • PID: process ID number • The kernel assigns a unique ID number to every process. • Most commands and system calls that manipulate processes require you to specify a PID to identify the target of the operation • PIDs are assigned in order as processes are created. • When the kernel runs out of PIDs, it starts again at 1, skipping over PIDs that are still in use. Chapter 4 - Controlling Processes

  7. 1. Components of a Process • PPID: parent PID • An existing program must clone itself to create a new process. • The clone can then exchange the program it is running for a different one. • When a process is cloned the original is called the parent, and the copy is called the child. • The PPID of a process is the PID of the parent from which it was cloned. • while that parent is alive. Chapter 4 - Controlling Processes

  8. 1. Components of a Process • UID and EUID: real and effective user ID • The process’s UID is the user identification number of the person who created it, • more accurately it is a copy of the EUID of the parent process. • The EUID is the “effective” user ID • used to determine what resources and files a process has permission to access • Why have both? • It is useful to maintain a distinction between identity and permission Chapter 4 - Controlling Processes

  9. 1. Components of a Process • GID and EGID: real and effective group ID • The GID is the group identification number of a process. • The EGID is related to the GID in the same was that the EUID is related to the UID. • If a process tries to access a file for which it does not have owner permissions, the kernel will automatically check to see if permission may be granted on the basis of the EGID • On some systems, a process can be in more than one group at a time. Chapter 4 - Controlling Processes

  10. 1. Components of a Process • Niceness • A process’s scheduling priority determines how much CPU time it receives. • The kernel uses a dynamic algorithm to compute priorities • taking into account the amount of CPU time that a process has recently consumed and the length of time it has been waiting to run. • It also takes into consideration an administratively set value that’s usually called the “nice value” or “niceness” • We will come back to niceness in Section 6. Chapter 4 - Controlling Processes

  11. 1. Components of a Process • Control terminal • The control terminal determines the linkages for stdin, stdout, and stderr. • The concept of a control terminal also affects the distribution of signals • We will discuss signals more in Section 3. Chapter 4 - Controlling Processes

  12. 2. The Life Cycle of a Process • To create a new process, a process copies itself with the fork system call. • fork creates a copy of the original process. • The copy has a distinct PID and has its own accounting information. • fork returns two different values • from the child’s point of view it returns 0 • the parent, on the other hand is returned the PID of the child Chapter 4 - Controlling Processes

  13. 2. The Life Cycle of a Process • After fork, the child will often use one of the exec family of system calls to begin executing a new program. • Before a process can be allowed to disappear completely, UNIX requires that its death be acknowledged by the process’s parent • They do this with a call to wait. • If the parent dies first, the orphan is adopted by init Chapter 4 - Controlling Processes

  14. 3. Signals • Signals are process-level interrupt requests. About 30 different kinds are defined and they are used in a variety of ways. • They can be sent among processes as a means of communication • They can be sent by the terminal driver to kill, interrupt, or suspend a process • <CTRL-C> and <CTRL-Z> • They can be sent by the administrator to achieve various results. • They can be sent by the kernel when a process commits an infraction (division by 0) Chapter 4 - Controlling Processes

  15. 3. Signals • When a signal is received, one of two things can happen. • If the receiving process has designated a handler routine for that particular signal, the handler is called with information about the context in which the signal was delivered. • Otherwise the kernel takes some default action • many terminate the process • some also generate a core dump Chapter 4 - Controlling Processes

  16. 3. Signals • Specifying a handler routine is often referred to as “catching the signal” • When the handler completes, execution restarts from the point at which the signal was received • just like an interrupt • To prevent signals from arriving, programs can request that they be either ignored or blocked. • Ignored are thrown away • Blocked are queued until they are unblocked (and only handled once) Chapter 4 - Controlling Processes

  17. 3. Signals Chapter 4 - Controlling Processes

  18. 4. KILL: Send Signals • The kill program is most often used to terminate a process. It can also send any signal. • kill [-signal] pid • signal is the number or symbolic name of the signal to be sent. • pid is the process id number of the target process • kill -9 pid • will “guarantee” that the process will die because signal 9 (kill) cannot be caught. • You have to reboot to eliminate those that will not die this way (they are stuck) Chapter 4 - Controlling Processes

  19. 5. Process States • A process is not automatically eligible to receive CPU time just because it exists. • There are essentially four execution states that you need to be aware of • Runnable - the process can be executed • Sleeping - the process is waiting for some resource • Zombie - the process is trying to die • Stopped - the process is suspended (not allowed to execute) Chapter 4 - Controlling Processes

  20. 6. Nice and Renice: Influence Scheduling Priority • The “niceness” of a process is a numeric hint to the kernel about how the process should be treated in relationship to other processes contending for the CPU. • This determines how nice you are going to be to other users of the system. • High nice means low priority, Low or negative value means high priority. Chapter 4 - Controlling Processes

  21. 7. PS: Monitor Processes • ps is the system administrator’s main tool for monitoring processes. • Understanding ps output is an important administrative skill • Looking at the ps listing you can determine (among other things) • What processes are running. • How much CPU and memory they are using • Who owns them Chapter 4 - Controlling Processes

  22. 8. Top: Monitor Processes Even Better • Since the commands like ps offer only a one-time snapshot of your system, it is often difficult to grasp the big picture of what’s really happening. • top is a free utility that runs on many systems that provides a regularly updated summary of active processes and their use of resources Chapter 4 - Controlling Processes

  23. 9. Runaway Processes • Runaway processes come in two flavors • User processes that use up excessive amounts of system resources • sometimes you have to investigate to see if they are legit (doing real computation) or malicious. • System processes that suddenly go berserk and exhibit wild behavior. Chapter 4 - Controlling Processes

  24. Chapter 4 - Controlling Processes

More Related