进程与任务或作业管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
suid和sgid权限的存在可能会给某些程序的执行带 来了方便,因为权限被放大了,但这也是一种危险 。因此设置这种权限的可执行二进制程序不宜太多 。
常用的设置suid的程序有:
/bin/ping、/usr/bin/passwd、/usr/bin/newgrp、 /usr/bin/sudo、/usr/sbin/suexec和 /usr/sbin/traceroute
6.1.6 进程状态及转换
在操作系统中,一个CPU上同时只能运行一个 进程,但在多用户、多任务环境下,从宏观上 来讲,同时运行着很多进程,因此在这些正在 运行着的进程中,在任一时刻只能有一个进程 占有处理机而真正运行。也就是说众多运行着 的进程中,它们宏观上是并行的,但微观上是 串行的。因此就存在着有的进程在运行,有的 进程在等待问题。
接着继续创建1#进程,然后由1#进程做进一步 的初始化工作。
Linux操作系统的启动(续)
1#进程继续初始化过程,按照/etc/inittab文件 的内容和规定启动服务、管理进程,为每个终 端生成一个子进程,等待用户在终端上注册, 至此启动过程完毕。
6.1.4 0#进程与1#进程
在UNIX系统中0#进程是唯一只在核心态下执 行的进程。它的功能有三:调度分配处理机; 负责进程交换;初始化时创建1#进程。在 Linux系统中,0#进程在创建出1#进程后,变 成了空闲进程(Idler),当系统中没有其它进 程就绪时运行。
6.3.2 进程管理与调度命令
1. 查询进程状态(ps)
功能:
查询进程状态和信息,给出系统当前正在运 行进程信息的快照。
用法
ps [ options ]
说明:
ps支持多种UNIX系统格式的个性化显示方式 。且参数较多;
可以配合kill命令结束系统中失控或不必要 的进程。
ps参数
-A,-e:显示系统内的所有进程; -a:显示所有与终端相关的进程
6.1.5 进程及运行模式
在UNIX/Linux系统中,进程可在用户态 和核心态两种执行模式下执行。
当用户进程需要系统核心提供服务而由 用户态转向核心态执行时,需要依靠中 断或陷阱机制来实现,这时要切换处理 机(CPU)的工作状态。两种状态之间 的主要区别是,核心态下的进程具有较 高的优先级,能够存取核心和用户数据 。而用户态下的进程能存取它自己的指 令与数据,但不能存取核心指令和数据 。
意义和功能描述
S我IGH们UP通常处1理的终只止是运行一些软挂中机断或断信线号信:号
SIGINT
2 终止运行
键盘收到Ctrl+C
SIGQUIT
3 写出映像
键盘收到退出Ctrl+\
SIGKILL
9 终止运行
KILL,不可屏蔽
SIGTERM
15 同上
进程终止信号
6.3进程管理与调度命令
可执行文件的setuid和setgid属性 可执行文件和目录的sticky属性 查询进程状态(ps) 按名称终止进程的执行(killall) 确定使用指定文件或文件系统的进程
作业是用户向计算机提交的任务实体; 一个进程是作业或任务的某个执行过程; 一个作业可由多个进程组成。
6.1.2 三类进程
前台进程:
是指用户直接控制的用于完成某个任务的进程,因此 也叫终端交互式进程。它从标准输入读数据,向标准 输出写数据,将错误信息输出到标准错误。也可以是 用户直接交互控制的完成某种功能的程序。
UNIX/Linux的进程调度按时间片计算“优先级” ,并按“优先级”的高低来调度进程,使优先级 高的进程占有处理机而得到执行。
这里所说的“优先级”不是一个具体的数字或变 量,而是一个衡量优先程度的指标。
6.2.1 调度策略与优先级的计算
Linux把所有进程分成两类:实时进程和 普通进程。
对普通进程采用时间片轮转法来调度进 程的执行,所有就绪进程按先后排成队 列,依次轮转,时间片用完而未完成任 务者排在尾部,如此往复;对于实时进 程则采用FIFO和时间片轮转进行调度。 最后经调度模块综合计算出各进程的优 先级,优先级最高者获得执行权。
A:显示当前终端的所有进程,也包括其它用户进程
2. 字符方式
chmod u+s myp1
#为myp1设置suid
chmod g+s myp2
#为myp2设置sgid
chmod ug+s myp3 #为myp3同时设置suid和sgid
修改后权限分别为:-rwsr-xr-x,-rwxrwsr-x 和 rwsrwsrwx
2.目录的stLeabharlann Baiducky权限
在Red Hat Linux 9中它的调整范围为-20~19, 在其它UNIX中,NICE取值范围可能与此不同 。
沿用UNIX的传统,NICE的值越大进程的优先 级越低。
NICE值可以被作为nice命令的参数来调试进程 的优先级。
6.2.2 信号与软中断
Unix/Linux中使用很多信号,用于进程通信与 控制。
Linux的启动是通过加电和系统自检后,将主 引导程序MBR装入内存并把控制权交给它。
在MBR的控制下装入Linux的引导程序LBR并把 控制权交给它。
在LBR的控制下系统继续引导,核心装入内存 。
系统开始进一步的初始化过程:首先初始化系 统内部数据结构(比如构造空闲缓冲区、初始 化区表结构、页表项等),然后将根文件系统 安装到根“/”下,并创建系统的0#进程、设置它 的运行环境。至此内核启动完成。
(fuser) 让进程抗终止运行(nohup) 改变进程的优先级(nice) 进程挂起或作业的前/后运行切换
6.3.1 可执行文件的setuid和setgid属性
在UNIX/Linux系统中,用户级别和执行 权力是相关。
但是有些工作,比如修改/etc/passwd和 /etc/shadow文件等,对于普通用户都是 必须的,因为它要修改密码。但是系统 中这些文件对于普通用户是不允许有写 操作的。
事实上进程的状态远不只执行和等待两个,还 有用户态执行、核心态执行、等待、睡眠、就 绪等状态。
UNIX系统的进程状态及转换
①进程在用户态运行。 ②进程在系统态运行。 ③ 就绪状态。
④进程因等待资源而在 内存中睡眠。
⑤进程在外存中睡眠。 ⑥ 外存就绪。 ⑦进程从系统态返回。
⑧进程刚被创建时的状 态。
Linux系统的中断
Linux系统常用的中断信号可用命令kill,killall和 fuser来查询。如表6-1所示。
在信号中,有的是硬件发出,比如SIGILL、
SIGSEGV等,有的是可屏蔽的,比如SIGHUP、
SIGQUIT等,而SIGKILL和SIGSTOP等是不可屏蔽
名。称
值 默认动作
6.1.1程序、进程、作业和任务
程序(program)是一个存储在存储介质上的 文件。
进程(proccess)是一个程序的执行过程。 作业(job)或任务(task)是用户需要计算机完成
某项任务时要求计算机所做工作的集合,一个 作业可能需要几个程序联合完成。
作业和进程主要的区别与关系如下:
⑨ 僵尸状态。
Linux系统的进程状态及转换
①就绪状态(执行) ②浅度睡眠 ③深度睡眠 ④停止状态 ⑤僵尸状态
6.2 UNIX/Linux进程调度
UNIX/Linux系统是分时系统,系统给每个进程 分一个时间片,每个进程在自己的时间片内执 行,当时间片结束时或从系统服务中返回时, 动态计算进程的“优先级”,若有优先级高于当 前进程的内存就绪态进程时,系统设置调度标 识,并在以后某个时刻剥夺当前进程的执行权 ,而让优先级高的进程执行。
UNIX/Linux系统允许目录使用sticky位 属性(粘着位)。
当一个目录设置了sticky位后,它内部 的文件只能被文件主、目录主或超级用 户删除、更名或移动。
设置sticky位的目录有/tmp、/usr/tmp 和/var/spool/uucppublic等。
在传统的UNIX系统中sticky对可执行文 件还具有特殊意义(略)。
进程与任务或作业管理
6.1程序和进程的概念
操作系统的重要任务之一是使用户充分、有效 地利用系统资源,也就是在系统资源一定或有 限的情况下,要同时执行更多程序,高效率地 完成更多的任务。
进程、作业和任务调度是操作系统的重要任务 之一。
本章的主要内容是从系统的外部来观察系统中 与进程(process)和作业(job)或任务(task)相关的 行为,并实施某些控制让系统工作的更好,或 按照用户的意图来完成指定工作。
进程通信时信号由主进程或系统或硬件等发送 到目的进程,当目的进程收到信号后要进行相 应的处理。若在目的进程在用户级执行,则收 到信号后立即处理,若在内核级运行时,先将 信号记下来,待返回到用户级时再处理。
用户可以向目的进程发送信号,而实现一定程 度的通讯,完成指定的工作或达到某种指定的 目的。用户可以对收到的信号采取系统指定的 办法进行处理,也可采取自己的办法进行处理 ,也可忽略信号 。
suid/sgid属性只对二进制可执行文件有 效,对可执行的脚本文件无效。
可执行文件的setuid和setgid属性(续
)
当一个属于超级用户的可执行二进制程序具有suid 属性时,则当一般用户执行它时,也就相当于有了 超级用户的身份和权限。
同样当一个属于超级用户所在组的可执行二进制程 序具有sgid属性时,则当一般用户执行它时,也就 相当于有了该组员的身份和权限。
后台进程
是指在系统后台运行的、不与用户交互进程。
前台的进程也可放在后台运行,这时可能要用到输入 输出的重定向。
守候进程也叫服务器或精灵进程,它是后台进程的一 种。
批处理进程
是用户按照某种意图将一批作业和任务通过编程的方 法提交给系统,让系统在某个合适的时间来调度和执 行的进程。
6.1.3 Linux操作系统的启动
sticky权限管理
sticky位是对目录执行权来说的,它的 属性值为1000。sticky位也可用chmod命 令通过root用户来设置。
设有目录mydir的权限为drwxr-xrx(755),则可通过以下两种方法来设置 它的sticky位:
chmod 1755 mydir #数字方式 chmod +t mydir #字符方式。 设置后的权限为drwxr-xr-t或1755
1#(init)进程是系统启动时创建的创建进程的 进程。它的主要作用是根据/etc/inittab的内容 创建系统运行所需的进程。系统初始化完成后 ,1#进程了变成回收进程,专门领养没有父 进程的孤儿进程或回收状态为ZOMBIE的僵尸 进程。
Linux的进程树
0#进程创建了1#进程,它是1#进程的父 进程。1#进程在系统启动过程中创建了系 统所需要的其它进程。而子进程又可创建 属于自己的子进程。因此除0#进程外, 1#进程是其它所有进程的祖先进程。
于是就出现了普通用户通过某种机制行 使超级用户权限的问题。
1 可执行文件的setuid和setgid属性
当一个程序具有suid属性时,它执行时 的uid将是该程序所有者的uid—即有效 uid,记为euid,而执行者的原来uid叫 为真实uid,记为ruid。
当一个程序具有sgid属性时,它执行时 的gid将是该程序的gid—即有效gid,记 为egid,而执行者的原来gid叫为真实 gid,记为rgid。
Nice Level优先级
在优先级计算过程中有一个基本参数参与运算 ,这就是传统UNIX/Linux Nice Level优先级, 按传统做法,把它记为NICE。
系统为每个进程设置了一个默认的NICE值(0 ),通过命令nice用户或管理员可以调整进程 的NICE值,从而达到调整优先级的目的。
setuid和setgid属性管理
按照文件的属性,若用八进制表示,对应于 suid和sgid的权限则为4000和2000。
setuid和setgid属性设置
1. 数字方法:
chmod 4755 myp1 #为myp1设置suid
chmod 2775 myp2 #为myp2设置sgid
chmod 6777 myp3 #为myp3同时设置suid和sgid
相关文档
最新文档