0% found this document useful (0 votes)
11 views

Part 1 Linux Chapter 4 Process Management

hust

Uploaded by

Phuc Nguyen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Part 1 Linux Chapter 4 Process Management

hust

Uploaded by

Phuc Nguyen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

COMPUTER LITERACY

PROCESS MANAGEMENT

Introduction
■ A process = An execution of a program
■ A process is managed under Linux with following
information:
◻ Process ID (pid)
◻ Parent process ID (ppid)
◻ User ID of the owner(uid) và nhóm (gid)
◻ Standard input (stdin), standard output(stdout), standart error
chanel (stderr)
◻ CPU time and priority
◻ Current working directory of the process
◻ List of the references to the files that the process uses.
■ Processes are order for exploring CPU

1
Process type(1)
■ System process
◻ Usually belong to root
◻ No interaction interface
◻ Usually run in background mode (daemon)
◻ Responsible for common task.
◻ example:
■ lpsched: manage the printing service
■ cron: execute automatically a command at a specified time
in the future
■ inetd: manage network communication.

Process type (2)


■ Users’ process
◻ Perform a task for a user
■ Triggered usually by a command from shell

◻ Example:
■ cp
■ vi
■ man
■ …

2
ps command
■ Display the list of process:
◻ Without any option, the command ps displays the list of processes
that belongs to the terminal user.

◻ With the options aux, command ps displays the list of processes


runing in the host.

$ ps
PID TTY TIME CMD
2803 pts/1 00:00:00 bash
2965 pts/1 00:00:00 ps
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 1104 460 ? S 15:26 0:03 init[3]
...
ttanh 951 0.0 0.3 1728 996 pts/0 S 16:09 0:00 bash
ttanh 953 0.0 1.9 6860 4916 pts/0 S 16:09 0:00 emacs
ttanh 966 0.0 0.3 2704 1000 pts/0 R 16:23 0:00 ps aux
...

Status of Process
■ S : sleeping
■ R : running
initiate

cancel

■ T : terminated
■ Z : zombie Running Terminate the process
Ctrl-C or kill
Terminated

Resume Sleeping
fg

3
Command kill
■ Send a signal to a process.
◻ Argument: Process ID
◻ By default the signal is 15 (SIGTERM – terminate a
process)
◻ Option –l: list all available signals .
◻ Ex: kill 935
■ Command killall:
■ Terminate all process that have been launched by a
command.
■ The command name is passed to killall as an
argument.
■ Ex: killall emacs
■ Only the owner can kill the process.

Process Priority
■ All process has the default priority 0
■ Priority values are in interval [-19 ,+19]
■ Smaller priority value indidates higher priority
◻ Root can reduce the priority value
◻ Ordinary user can only increase the priority value.
■ Command nice allows to set the priority to a process at
launching time
◻ $ nice [-n Value] [Command [Arguments ...]]
■ Command renice allows to change the priority of a
process while it is running.

4
Command top
■ Display the following information about running
processes with periodical update :
◻ %CPU
◻ % memory usage
◻ ….
■ $ top [–d]
◻ Option –d allows to specify the update period (in
seconds).

Running a process in foreground


■ When launching a process in foreground mode:
« Fork » step: The parent process is cloned (in case

of executing a command in shell the parent process is
the shell)
◻ « wait » step: parent process goes to sleep.
◻ « exec » step: execute the process.
◻ After the process is terminated, its parent process will
be « waked up ».
◻ 🡺 while the process is running, user cannot
interact with the parent process.

5
Running a process in background

■ Both the processes are running simultanously


■ Example:
■ $ emacs&
■ Emacs will be run in background
■ User can still use the terminal to execute other
commands
■ How to make the process run in background
■ Add & after the command
■ Ex. Vim &

Task management
■ A task = execution of a command
■ There is no more than 1 task running in foreground
■ There can be more than 1 task running in background

$ command & $ command

kill fg
END Background Foreground END
Ctrl-C
fg
bg
Stop
stop Ctrl-Z

6
Examples:
$ emacs &
[1] 756
$ stop 756
# or $ stop %1
$ bg 756
# or $ bg %1
$ kill 756
# or $ kill %1

Redirection of input/output
streams
■ Each process has:
◻ A standard input stream (keyboard by defaut)
◻ A standard output stream (terminal by defaut)
◻ A standard error stream (terminal by defaut)
■ Redirection of input stream (<)
$ tee < test.txt

■ Redirection of output stream(>, >>)


$ ls > /dev/lp
$ ls >> test.txt
■ Redirection of error stream
$ rm prog.c 2> /dev/null
$ gcc prog.c 2>> erreur.txt

7
Combine commands
■ Execute serveral commands independantly
◻ Using character ; for separating process
◻ Processes are executed consecutively but independantly
◻ $cp public/* personal; rm -r public

■ Execute several commands dependantly


◻ Using character && for executing several processes
consecitively but the following commandis executed only when
the previous command is termiated successfully
◻ $cp public/* persomnal && rm -r public

Pipeline
■ Pipeline mechanism allows to connect the input
stream of the first command to output stream of
the second command
■ Pipeline is set by using: |
◻ $ cmd1 | cmd2
■ Example :
◻ $ls –l | more #print page by page

8
Pipeline (2)
• The pipeline is normally used followed by a grep
command to filter data
• Ex. ps –axuc | grep hello
(find all processes start with hello)

17

Exercise
• 1) Write command seeking for all files named “test”
in your home directory
• 2) Revise the command so that all error messages
are redirected to a file log.txt

9
Exercise
• Given file data.dat
Phạm Đình Hảo? [email protected]?20090991
Phạm Duy Hoàn? [email protected]? 20091134
Nguyễn Xuân Hoàng? [email protected]? 20091171
Đặng Văn Khá[email protected]? 20091432
Lê Hoàng Kiên? [email protected]? 20091505
Ngô Hải Linh? [email protected]? 20091596
• -------
• 1) Extract the list of student full name
• 2) Extract the full name of the students with studentID X
grep “X$” dulieu.dat | cut –d? –f1
• 3) Sort students by studentID
sort –n –k3 –t? dulieu.dat

10

You might also like