LINUX进程控制.ppt
合集下载
精品课件-Linux操作系统原理与应用(张玲)-第4章

第4章 进 程 管 理
2. 进程的特性 进程与程序的不同主要体现在进程有一些程序所没有的特 性。要真正理解进程,首先应了解它的基本性质。进程具有以 下几个基本特性: (1) 动态性:进程由“创建”而产生,由“撤销”而消 亡,因“调度”而运行,因“等待”而停顿。进程从创建到消 失的全过程称为进程的生命周期。 (2) 并发性:在同一时间段内有多个进程在系统中活动。 它们宏观上是在并发运行,而微观上是在交替运行。
第4章 进 程 管 理
(3) 独立性:进程是可以独立运行的基本单位,是操作 系统分配资源和调度管理的基本对象。因此,每个进程都独立 地拥有各种必要的资源,独立地占有CPU并独立地运行。
(4) 异步性:每个进程都独立地执行,各自按照不可预 知的速度向前推进。进程之间的协调运行由操作系统负责。
第4章 进 程 管 理
第4章 进 程 管 理
4) 现场信息 现场信息一般包括CPU的内部寄存器和系统堆栈等,它们 的值刻画了进程的运行状态。退出CPU的进程必须保存好这些 现场状态,以便在下次被调度时继续运行。当一个进程被重新 调度运行时,要用PCB中的现场信息来恢复CPU的运行现场。 现场一旦切换,下一个指令周期CPU将精确地接着上次运行的 断点处继续执行下去。
第4章 进 程 管 理
4.1.1 程序的顺序执行与并发执行 1. 程序的顺序执行 如果程序的各操作步骤之间是依序执行的,程序与程序之
间是串行执行的,这种执行程序的方式就称为顺序执行。顺序 执行是单道程序系统中的程序的运行方式。
程序的顺序执行具有如下特点: (1) 顺序性:CPU严格按照程序规定的顺序执行,仅当一 个操作结束后,下一个操作才能开始执行。多个程序要运行时, 仅当一个程序全部执行结束后另一个程序才能开始。
第21章 Linux 常用命令.ppt

使用分号(;)可以将两个命令隔开,这样可以实现在一行中输入多个命令。 命令的执行顺序和输入的顺序相同。
2019年11月1日星期五
10
命令补齐
当要输入的命令目录很深或命令中的文件 名很长时,只要按一下 “Tab” 键,系统 会在可能的命令或文件名中找到相匹配的 项,自动帮用户补齐。如果有一个以上的 文件符合输入的字符串,不能补齐时,可 以按两下“Tab” 键,系统将把所有符合的 文件名列出来。
2.2 文件和目录操作命令 2.3 系统管理命令 2.4 文件压缩和解压缩 2.5 linux网络操作命令 2.6 进程管理和作业控制
2019年11月1日星期五
14
文件和目录操作命令
pwd
pwd 命令用于显示用户所在的位置。
[root@Candy ~]# pwd
/root
在Linux 文本环境下,在命令前的“[root@Candy~]#”中, “root”表示登录用户名,“Candy”代表计算机名,而 “:”后边表示的是用户当前目录,最后的字符为命令提
[root@Candy:/]# pwd
/ 在Linux 系统中,“~”表示登录主目录,“.”表示目前所在的目录,
“..”表示目前目录位置的上一层目录。root 用户的主目录是 “/root”,其他一般用户的主目录默认在“/home”下。例如, student 用户的默认主目录为“/home/student”。 如果要在最近工作过的两个目录间切换,可以执行命令“cd –”。
图2-2 Linux树型目录结构
2019年11月1日星期五
7
主要的系统目录及其简单描述
目录
解释
/bin /sbin
存放普通用户可以使用的命令文件。目录 /usr/bin 也可用来贮存用户命令。
2019年11月1日星期五
10
命令补齐
当要输入的命令目录很深或命令中的文件 名很长时,只要按一下 “Tab” 键,系统 会在可能的命令或文件名中找到相匹配的 项,自动帮用户补齐。如果有一个以上的 文件符合输入的字符串,不能补齐时,可 以按两下“Tab” 键,系统将把所有符合的 文件名列出来。
2.2 文件和目录操作命令 2.3 系统管理命令 2.4 文件压缩和解压缩 2.5 linux网络操作命令 2.6 进程管理和作业控制
2019年11月1日星期五
14
文件和目录操作命令
pwd
pwd 命令用于显示用户所在的位置。
[root@Candy ~]# pwd
/root
在Linux 文本环境下,在命令前的“[root@Candy~]#”中, “root”表示登录用户名,“Candy”代表计算机名,而 “:”后边表示的是用户当前目录,最后的字符为命令提
[root@Candy:/]# pwd
/ 在Linux 系统中,“~”表示登录主目录,“.”表示目前所在的目录,
“..”表示目前目录位置的上一层目录。root 用户的主目录是 “/root”,其他一般用户的主目录默认在“/home”下。例如, student 用户的默认主目录为“/home/student”。 如果要在最近工作过的两个目录间切换,可以执行命令“cd –”。
图2-2 Linux树型目录结构
2019年11月1日星期五
7
主要的系统目录及其简单描述
目录
解释
/bin /sbin
存放普通用户可以使用的命令文件。目录 /usr/bin 也可用来贮存用户命令。
Linux 系统第7章 进程管理

• 格式:crontab [参数] 文件名
• 参数:
-u 用户名
//指定具体用户的cron文件
-r
//删除用户的crontab文件
• 实 -例l :
//显示用户的cron文件
-e# crontab /ro/o/编t/r辑oo用t.户cr的oncrontab文件
//建立当前标准格式用户crontab文件
• 系统在指定时间运行指定的程序,可用at, batch和cron调度。
7-2 进程管理的常用命令
1、ps • 功能:静态显示系统进程信息 • 格式:ps [参数] • 参数: -a //显示所有进程(不包括没有终端的进程) -u //显示用户名和启动时间 -x //显示没有终端的进程 -e //显示所有进程(不显示进程状态)
………………….. 说明:以上输出的信息包括
USER 进程的启动用户 PID 进程号(进程的唯一标识) %CPU 占CPU的百分比 %MEM 占用内存百分比 VSZ 占用的虚拟内存大小 RSS 占用的物理内存大小 TTY 进程的工作终端(?表示没有终端) STAT 进程的状态:
R: 正在执行中 S: 休眠静止状态 T: 暂停执行 Z:僵死状态 Time 占用的cpu的时间 Command 运行的程序
• 实例: # ps # ps –aux
//显示当前用户进程 //显示所有进程信息
# ps –aux
USER PID %cpu %mem vsz rss tty stat start time command
root 1 0.0 0.3 1096 476
?s
18:20 0:04 init
crontab命令提交的调度任务存放在 /var/spool/cron目录中,并且以提交的用户名称命 名,等待crond进程来调度执行。
Linux操作系统ppt课件

ppt课件.
10
3. 进程的终止
当命令执行完,希望终止自己时,可在其 程序末尾使用系统调用exit()。
ppt课件.
11
4. 进程上下文切换
改变进程上下文的工作很复杂,是由系统 调用execve()实现的。它用一个可执行文件 的副本覆盖该进程的内存空间。
ppt课件.
12
8.2.5 Linux 线程
Linux利用信号量实现对关键代码和数据的互斥访问。 Linux信号量数据结构中包含的信息主要有。
1) count(计数) 2) waking(等待唤醒计数) 3) 等待队列 4) lock(锁)
ppt课件.
17
8.2.10 管道
管道是Linux中最常用的进程间通信IPC机 制。利用管道时,一个进程的输出可成为另 外一个进程的输入。当输入输出的数据量特 别大时,这种IPC机制非常有用。
ppt课件.
8
8.2.4 Linux的进程控制
1. 进程的创建
Linux操作系统中,除初始化进程外,其 他 进 程 都 是 用 系 统 调 用 fork() 和 clone() 创 建的,调用fork()和clone()的进程是父进 程,被生成的进程是子进程。
ppt课件.
9
2. 进程的等待
父进程可用系统调用wait3()等待它的任 何一个子进程终止,也可以用系统调用 wait4()等待某个特定的子进程终止。
ppt课件.
1
8.1 Linux概述
8.1.1 学习Linux操作系统的意义 8.1.2 Linux系统的特点 8.1.3 Linux 系统的发展
ppt课件.
2
8.1.4 Linux体系结构
ppt课件.
第6章 linux进程控制开发及多线程编程

进程的状态
进程是程序的执行过程,根据它的生命周期可以划分成3种 状态。 执行态:该进程正在运行,即进程正在占用CPU。 就绪态:进程已经具备执行的一切条件,正在等待分配 CPU的处理时间片。 等待态:进程不能使用CPU,若等待事件发生(等待的 资源分配到)则可将其唤醒。
Linux下进程地址空间(1)
互斥锁线程控制 (1)
在同一时刻只能有一个线程掌握某个互斥锁,拥有上锁状态 的线程能够对共享资源进行操作。若其他线程希望上锁一个 已经被上锁的互斥锁,则该线程就会挂起,直到上锁的线程 释放掉互斥锁为止。
互斥锁机制主要包括下面的基本函数。 互斥锁初始化: pthread_mutex_init() 互斥锁上锁: pthread_mutex_lock() 互斥锁判断上锁:pthread_mutex_trylock() 互斥锁解锁: pthread_mutex_unlock() 消除互斥锁: pthread_mutex_destroy()
示例
阅读并执行示例7-2-4 开始
教材P216-P217
fork()
程序功能: (1)使用fork创建一个子进程, 然后让其子进程暂停5s(sleep函 数)。 (2)父进程使用waitpid,参数 WNOHANG使进程不会阻塞; (3)若子进程退出,则waitpid返 回子进程号,若没有则waitpid返 回0,并且父进程每隔一秒循环判 断。
因此,可以通过返回值来判定该进程是父进程还是子进程。
fork示例
1.Fork返回两个值返回到哪里??
int main(void)
{
pid_t result;
2.怎样区分是父、子进程??
result = fork();
《Linux系统》课件

系统状态管理
了解在Linux系统中管理系统状态和服务 的方法。
Linux系统的常见问题解答
故障排除
解答Linux系统常见故障和错误 的排查方法和技巧。
错误修复
提供解决Linux系统错误和异常 情况的解决方案。
优化技巧
分享优化Linux系统性能和效率 的实用技巧。
附录:Linux系统常用命令
常用命令分类介绍 实例演示 注:本课件仅供参考学习使用
Linux系统的基本操作
Linux文件系统
探索Linux系统中的文件系统结构和文件操作。
Linux命令行
学习使用Linux命令行进行文件管理、进程控制和 系统配置。
Linux模式匹配与正则表达式
介绍Linux系统中模式匹配和正则表达式的使用。
Linux文件权限管理
讲解Linux系统中的文件权限概念和权限管理方法。
《Linux系统》PPT课件
Linux系统PPT课件,旨在介பைடு நூலகம்Linux操作系统的发展历史、特点以及与其他操 作系统的比较,并提供了安装、启动、基本操作、网络功能、应用、管理和 常见问题解答的内容。
什么是Linux系统?
发展历史
探索Linux系统的起源、演变 和发展过程。
特点
介绍Linux系统的优点和特性, 如开源性、稳定性和安全性。
与其他操作系统的比较
对比Linux系统与其他操作系 统,如Windows和macOS的 不同之处。
Linux系统的安装与启动
1
启动过程
2
解析Linux系统的启动过程,从BIOS到引
导加载程序的执行。
3
安装方法
详细讲解Linux系统的安装方法,包括光 盘安装和网络安装。
了解在Linux系统中管理系统状态和服务 的方法。
Linux系统的常见问题解答
故障排除
解答Linux系统常见故障和错误 的排查方法和技巧。
错误修复
提供解决Linux系统错误和异常 情况的解决方案。
优化技巧
分享优化Linux系统性能和效率 的实用技巧。
附录:Linux系统常用命令
常用命令分类介绍 实例演示 注:本课件仅供参考学习使用
Linux系统的基本操作
Linux文件系统
探索Linux系统中的文件系统结构和文件操作。
Linux命令行
学习使用Linux命令行进行文件管理、进程控制和 系统配置。
Linux模式匹配与正则表达式
介绍Linux系统中模式匹配和正则表达式的使用。
Linux文件权限管理
讲解Linux系统中的文件权限概念和权限管理方法。
《Linux系统》PPT课件
Linux系统PPT课件,旨在介பைடு நூலகம்Linux操作系统的发展历史、特点以及与其他操 作系统的比较,并提供了安装、启动、基本操作、网络功能、应用、管理和 常见问题解答的内容。
什么是Linux系统?
发展历史
探索Linux系统的起源、演变 和发展过程。
特点
介绍Linux系统的优点和特性, 如开源性、稳定性和安全性。
与其他操作系统的比较
对比Linux系统与其他操作系 统,如Windows和macOS的 不同之处。
Linux系统的安装与启动
1
启动过程
2
解析Linux系统的启动过程,从BIOS到引
导加载程序的执行。
3
安装方法
详细讲解Linux系统的安装方法,包括光 盘安装和网络安装。
操作系统课件:Lecture5 进程的控制与调度

➢简单、可靠;
公平性
➢容易理解、实现方便;
吞吐量
➢非抢占式的。
及时性
缺点:
周转时间
➢作业的平均等待时间过长,系统效率低下;
➢不适合于分时系统。
例,几乎同时到达的三个作业j1、j2、j3。j1运行2 小时,j2和j3只需1分钟。三个作业的平均周转时 间为2个小时多。增长了短作业的周转时间。
(系统先运行j1,j2和j3要等2个小时。j1完成之后 ,j2和j3再分别运行1分钟。)
(3)为支持可剥夺调度,即使没有新就绪进程,为了让 所有就绪进程轮流占用处理机,可在下述情况下申请 进行进程调度: 当时钟中断发生,时钟中断处理程序调用有关时间片 的处理程序,发现正运行进程时间片到,应请求重新 调度。以便让其他进程占用处理机。 在按进程优先级进行进程调度的操作系统中,任何原 因引起进程的优先级发生变化时,应请求重新调度。 如进程通过系统调用自愿改变优先级时或者系统处理 时钟中断时,根据各进程等待处理机的时间长短而调 整进程的优先级。
内核 进程1 调度
时间片到
进程2
内核 调度
I/O请求
进程3
内核 调度
时间片到
进程1
内核 调度
进程3
...
时间片到
时间片到
引起进程调度因素(3大类):
(1)进程主动放弃处理机时:
正在执行的进程执行完毕。操作系统在处理进程结束 系统调用后应请求重新调度。 正在执行的进程发出I/O请求,当操作系统代其启动 外设I/O后,在I/O请求没有完成前要将进程变成阻塞 状态,应该请求重新调度。 正在执行的进程要等待其它进程或系统发出的事件时。 如等待另一个进程通讯数据,这时操作系统应将现运行 进程挂到等待队列,并且请求重新调度。 正在执行的进程暂时得不到所要的系统资源,如要求 独占资源,但其被其它进程占用,这时等待的进程应阻 塞到等待队列上,并且请求重新调度。
进程与进程管理课件

进程已做好准备,等待 CPU调度执行。
阻塞态
进程在等待某一事件完成 。
创建态
进程正在被创建,尚未转 到就绪态。
结束态
进程从系统消失,可能是 正常结束或其他原因中断 退出运行。
02
进程的结构与组成
进程的标识符
01 唯一标识
进程标识符(PID)是系统中唯一标识进程的数字 ,用于区分不同进程。
02 进程组标识
• 挂起处理:当进程被挂起时,需要将其状态保存到外存中,同时释放其所占用 的内存资源,以确保系统能够继续运行其他进程。
• 恢复方式:被挂起的进程可以通过系统资源充足、用户请求等方式恢复执行。 • 恢复处理:当进程被恢复时,需要将其状态从外存中读取到内存中,并重新分
配相应的系统资源,以确保进程能够继续执行。同时,还需要更新相关的数据 结构,保证系统状态的一致性。在恢复进程时,还需要注意处理可能出现的并 发问题,确保进程的恢复操作是原子性的,避免在恢复过程中出现竞态条件。
上下文切换
当操作系统从一个进程切换到另一个进程时,需要保存当 前进程的上下文并恢复要执行进程的上下文,确保进程能 够正确继续执行。
保存与恢复
上下文的保存包括将处理器的寄存器值、程序计数器等内 容保存到相应进程的PCB中;上下文的恢复则是从PCB中 读取保存的信息,恢复处理器的状态。
03
进程管理技术与机制
程都在等待下一个进程所占有的资源)。
死锁的避免、预防与检测
01 02
避免
通过银行家算法等方式避免死锁的发生。银行家算法在分配资源之前先 判断系统是否处于安全状态,如果安全则分配,否则就等待,以此来避 免进入死锁状态。
预防
通过破坏死锁产生的四个必要条件之一来预防死锁的发生。例如,采用 一次性申请所有资源的策略来破坏请求和保持条件。
阻塞态
进程在等待某一事件完成 。
创建态
进程正在被创建,尚未转 到就绪态。
结束态
进程从系统消失,可能是 正常结束或其他原因中断 退出运行。
02
进程的结构与组成
进程的标识符
01 唯一标识
进程标识符(PID)是系统中唯一标识进程的数字 ,用于区分不同进程。
02 进程组标识
• 挂起处理:当进程被挂起时,需要将其状态保存到外存中,同时释放其所占用 的内存资源,以确保系统能够继续运行其他进程。
• 恢复方式:被挂起的进程可以通过系统资源充足、用户请求等方式恢复执行。 • 恢复处理:当进程被恢复时,需要将其状态从外存中读取到内存中,并重新分
配相应的系统资源,以确保进程能够继续执行。同时,还需要更新相关的数据 结构,保证系统状态的一致性。在恢复进程时,还需要注意处理可能出现的并 发问题,确保进程的恢复操作是原子性的,避免在恢复过程中出现竞态条件。
上下文切换
当操作系统从一个进程切换到另一个进程时,需要保存当 前进程的上下文并恢复要执行进程的上下文,确保进程能 够正确继续执行。
保存与恢复
上下文的保存包括将处理器的寄存器值、程序计数器等内 容保存到相应进程的PCB中;上下文的恢复则是从PCB中 读取保存的信息,恢复处理器的状态。
03
进程管理技术与机制
程都在等待下一个进程所占有的资源)。
死锁的避免、预防与检测
01 02
避免
通过银行家算法等方式避免死锁的发生。银行家算法在分配资源之前先 判断系统是否处于安全状态,如果安全则分配,否则就等待,以此来避 免进入死锁状态。
预防
通过破坏死锁产生的四个必要条件之一来预防死锁的发生。例如,采用 一次性申请所有资源的策略来破坏请求和保持条件。
《进程调度》PPT课件

4 Linux中的进程管理
– 4.1 Linux进程概述 • 1.进程实体的组成
• Linux进程由3部分组成:正文段、用户数 据段和系统数据段。
系
进 程
统 数 据
段
正文段 用户数据段
图 Linux进程组成
• 2.进程的状态 • 进程是一个动态的概念,在其运行的整个生
命周期中可根据具体情况不断改变其状态。 Linux进程主要有如下几种状态。
wait_interruptible
申请资源未成功 sleep_on() schedule()
拥有CPU
申请资源未成功 interruptible_sleep_on() schedule()
跟踪系统调用 执行syscall_trace() sys_exit() schedule()
Linux内核功能
进程调度与内存管理之间的关系:这两个子系统互 相依赖。在多道程序环境下,程序要运行必须为之 创建进程,而创建进程的第一件事情,就是将程序 和数据装入内存。
进程间通信与内存管理的关系:进程间通信子系统 要依赖内存管理支持共享内存通信机制,这种机制 允许两个进程除了拥有自己的私有空间,还可以存 取共同的内存区域 。
这种暂停状态被称为阻塞状态。
• 2.进程的状态转换 图1 进程的3种基本状态及其转换
1.4 进程的结构
• 进程结构 PCB
进程控制块
程序段 数据段
动态特征的集中反映 描述要完成的功能 操作对象及工作区
2.进程控制块
• 进程控制块是进程实体的一部分,是操作
系统中最重要的记录型数据结构。PCB中记录 了操作系统所需的,用于描述进程进展情况及 控制进程运行所需的全部信息。
在一个系统中,通常拥有数十个、数百 个乃至数千个PCB。为了对PCB进行有 效地管理,系统应把所有的PCB用适当 的方式组织起来。
第二讲linux基本操作常用命令PPT教学课件

rmdir
2020/12/10
14
PPT教学课件
谢谢观看
You For Watching
15
RHEL默认使用GNOME,也可以在定制安装 时选择GNOME与KDE任一或者兼用。
GNOME(the GNUNetwork Object Model Environment)
桌面系统使用C语言编程,也绑定其他语言: C++ JAVA C#
下面的时间大家来熟悉linux的桌面环境及
其操作 实训二: ( RHEL 的X window基本
第2章 linux操作基础——
Linux
2020/12/10
1
导读
Linux登录、修改口令、退出、关闭、重启
▪ Linux的X Window认识与操作 ▪ Linux常用命令 ▪ Linux文件操作 ▪ I/O重定向
2020/12/10
2
登录:都要输入用户名和口令 超级用户:root 普通用户:用户自己创建
-m所用机器类型
-I需要的硬件平台
-v操作系统版本
⑧clear命令:用于清屏
⑨wc:用来统计给定文件的行数、字数、和字符数
格式:wc [-lw] [-c] 文件名
2020/12/10
10
导读
▪ linux登录、退出、关闭、重启 ▪ Linux的X Window认识与操作 ▪ Linux常用命令
Linux文件操作
▪ I/O重定向
2020/12/10
11
2.3.1linux系统的文件
1、命名
2、文件名与通配符 ? *
3、文件类型
普通文件、目录文件、设备文件、符号链接文件、管道文件
4、文件的归属关系
2020/12/10
14
PPT教学课件
谢谢观看
You For Watching
15
RHEL默认使用GNOME,也可以在定制安装 时选择GNOME与KDE任一或者兼用。
GNOME(the GNUNetwork Object Model Environment)
桌面系统使用C语言编程,也绑定其他语言: C++ JAVA C#
下面的时间大家来熟悉linux的桌面环境及
其操作 实训二: ( RHEL 的X window基本
第2章 linux操作基础——
Linux
2020/12/10
1
导读
Linux登录、修改口令、退出、关闭、重启
▪ Linux的X Window认识与操作 ▪ Linux常用命令 ▪ Linux文件操作 ▪ I/O重定向
2020/12/10
2
登录:都要输入用户名和口令 超级用户:root 普通用户:用户自己创建
-m所用机器类型
-I需要的硬件平台
-v操作系统版本
⑧clear命令:用于清屏
⑨wc:用来统计给定文件的行数、字数、和字符数
格式:wc [-lw] [-c] 文件名
2020/12/10
10
导读
▪ linux登录、退出、关闭、重启 ▪ Linux的X Window认识与操作 ▪ Linux常用命令
Linux文件操作
▪ I/O重定向
2020/12/10
11
2.3.1linux系统的文件
1、命名
2、文件名与通配符 ? *
3、文件类型
普通文件、目录文件、设备文件、符号链接文件、管道文件
4、文件的归属关系
《Linux培训》PPT课件

自动化运维工具安全策略
介绍自动化运维工具的安全策略,如 权限控制、数据加密等,以确保系统 安全。
分布式系统与集群
分布式系统与集群简介
介绍分布式系统与集群的概念、特点和优势 。
分布式系统与集群实现技术
详细介绍分布式系统与集群的实现技术,如 负载均衡、数据同步等。
分布式系统与集群应用场景
列举分布式系统与集群在不同场景下的应用 ,如高性能计算、大数据处理等。
物联网
Linux在物联网领域也得到了广 泛的应用,包括智能家居、智 能交通等领域。
PART 02
Linux系统基础
文件和目录管理
文件和目录概述
Linux系统中,文件和目录是组织和管理数据的主要方式 。文件用于存储数据,而目录则用于组织文件。
目录结构
Linux系统采用树形目录结构,根目录为“/”,其他目录 和文件都从根目录开始进行组织。了解目录结构有助于更 好地管理和查找文件。
2023 WORK SUMMARY
《linux培训》ppt课 件
汇报人:可编辑
2023-12-27
REPORTING
目录
• Linux简介 • Linux系统基础 • Linux常用命令 • Linux系统管理和优化 • Linux网络服务 • Linux高级应用
PART 01
Linux简介
Linux的起源和历史
PART 06
Linux高级应用
自动化运维工具
自动化运维工具简介
介绍自动化运维工具的概念、作用和 优势,如Ansible、Puppet、Chef 等。
自动化运维工具应用场景
列举自动化运维工具在不同场景下的 应用,如系统部署、配置管理、监控 预警等。
Linux系统管理.ppt

每个用户至少属于一个组,一个用户可以属于多个组。
groupname
组的名字
Passwd
组的加密口令
GID
系统区分不同组的ID,在/etc/passwd域中的
GID域是用这个数来指定用户的缺省组。
Userlist 是用“,”分开的用户名,列出的是这个组的成
员。
4. 用户组口令文件——gshadow
gshadow文件用于定义用户组口令、组管理员等信息,该文件只有root
Account
使用者在系统中的名字,它不能包含大写字母。
Password
用户口令,出于安全考虑,现在不使用该字段保存口令,
而用字母“x”来填充该字段,真正的密码保存在shadow文件。
UID
用户 ID 号,惟一表示某用户的数字。
GID
用户所属的私有组号,该数字对应group文件中的GID。
GECOS
作该账号的私有组。
useradd –g 组名 用户名
-D 用于显示或设置useradd命roup][-b base][-s shell][-f inactive][-e expire]
2. 修改用户账号——usermod
usermod命令可用来修改用户主目录、私有组、登录、shell等内容。 命令格式如下: usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>] [-G <群组>][-l <帐号名称>][-s ][-u ] 用户帐号
passwd [用户名]
只有超级用户可以使用“passwd 用户名”修改其他 用户的口令,普通用户只能用不带参数的passwd命令 修改自己的口令。
groupname
组的名字
Passwd
组的加密口令
GID
系统区分不同组的ID,在/etc/passwd域中的
GID域是用这个数来指定用户的缺省组。
Userlist 是用“,”分开的用户名,列出的是这个组的成
员。
4. 用户组口令文件——gshadow
gshadow文件用于定义用户组口令、组管理员等信息,该文件只有root
Account
使用者在系统中的名字,它不能包含大写字母。
Password
用户口令,出于安全考虑,现在不使用该字段保存口令,
而用字母“x”来填充该字段,真正的密码保存在shadow文件。
UID
用户 ID 号,惟一表示某用户的数字。
GID
用户所属的私有组号,该数字对应group文件中的GID。
GECOS
作该账号的私有组。
useradd –g 组名 用户名
-D 用于显示或设置useradd命roup][-b base][-s shell][-f inactive][-e expire]
2. 修改用户账号——usermod
usermod命令可用来修改用户主目录、私有组、登录、shell等内容。 命令格式如下: usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>] [-G <群组>][-l <帐号名称>][-s ][-u ] 用户帐号
passwd [用户名]
只有超级用户可以使用“passwd 用户名”修改其他 用户的口令,普通用户只能用不带参数的passwd命令 修改自己的口令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
该程序多次运行后,输出的结果可能会是:
abc、acb、bca、cba、bac或cab等随机结果中的任意一种。 每次运行后都会产生父子3个进程,所以有3个字符输出。 其中系统屏幕输出进程的输出[humingqing@BitLinux chap3]$显示会跟
随在父进程输出’a’之后。
2021/1/30
➢ 也正因为父子映像有各自的存储空间,父子进程对于各自存储空间中的 执行过程包括对变量的修改等等,就是各自的行为,不会传递到对方的 存储空间中,因而双方都感知不到对方的行为。
➢ 操作系统对于父子进程的调度执行具有随机性,它们执行的先后次序不 受程序源码中分支顺序的影响。只要父子进程之间没有使用同步工具来 控制其执行序列,则父子进程并发执行的顺序取决于操作系统的调度, 谁先谁后是随机的。
统文件表项中的引用记数加1; ➢ 为子进程创建进程映像:
创建子进程映像静态部分:复制父进程映像静态部分 创建子进程映像动态部分:初始化task_struct结构 结束创建,置子进程为内存就绪状态,插入就绪队列,作为一个独立的进程被系统调
度。
➢ 若调用进程(父进程)返回,则返回创建的子进程标识符pid值(此时返回值 >0);
=-1
创建失败。
2021/1/30
4
Linux中用户子进程的创建与调度执行
子进程创建时操作系统做以下工作: ➢ 检查同时运行的进程数目,若超过系统设定值则创建失败,返回-1; ➢ 为子进程分配进程控制块task_struct结构,并赋予唯一进程标识符pid; ➢ 子进程继承父进程打开的所有文件及资源,对父进程的当前目录和所有已打开系
1.进程的创建与调度执行
不同的操作系统所提供的进程创建原语的名称和格式不尽相同,但执行创 建进程原语后,操作系统所做的工作却大致相同,都包括以下几点:
➢ 给新创建的进程分配一个内部标识,并分配一个空白的PCB,同时在系 统进程表中增加一个表目。
➢ 为该进程分配内存空间,包括进程映像所需要的所有元素(程序、数据、 用户栈等),复制父进程内存空间的内容到该进程内存空间中。
//子进程P1返回输出’b’
putchar('b') ;
else
//父进程返回
{
while( (p2 = fork()) == -1) ;
//创建子进程2
if(p2==0)
//子进程P2返回输出’c’
putchar('c');
else
putchar('a');
//父进程返回输出’a’
}
}
2021/1/30
➢ 若子进程被调度执行,则将其U区计时字段初始化然后返回(此时返回值=0)。
2021/1/30
5
由于fork()调用执行后,从父进程和子进程返回的值不同,因而用户能够以此为 据在程序中使用分支结构将父子进程需要执行的不同程序分开。
应用程序的框架结构如下:
main( )
{
int p;
//存放子进程pid号
进程控制
进程控制是操作系统对进程进行管理所提供的控 制操作。进程控制至少应该包括进程创建、进 程撤销、进程睡眠、进程唤醒、进程执行等操 作,它们都使用原语实现。所谓原语是指在执 行过程中不允许中断,它属于操作系统内核的 一部分,以系统调用的形式提供给用户和操作 系统使用。
2021/1/30
1
进程创建
2021/1/30
7
[例3-3] 父进程创建子进程P1、P2,父子进程分别输出字符 a、b和c。假设文件名为3-3.c
#include<stdio.h> main() {
int p1,p2; while ( (p1 = fork() ) == -1);
//创建子进程1,直至创建成功
if(p1==0)
当用户开始使用某端口时,系统进程创建一个login进程来接 收用户标识和口令,并通过系统文件/etc/passwd中的信息 核对该用户的身份。如果登录成功则login改变当前目录到 用户主目录,并执行指定的shell程序,以便用户通过shell 界面直接与login系统进程交互。
当用户在键盘上键入一个用户可执行文件名时,操作系统就为 该文件创建一个相应的用户进程并投入运行。
➢ 初始化PCB。如果该进程是用户进程创建的子进程,则它将继承和共享 父进程的资源。
➢ 置该进程的状态为就绪,插入就绪队列。
➢ 生成其它相关的数据结构。
2021/1/30
2
Linux中终端用户进程的创建与调度执行
启 动 Linux 的 过 程 中 , 当 操 作 系 统 被 加 载 后 首 先 创 建 0# 进 程 init_task。除了0#进程是在系统初启时由系统创建以外, 所 有 进 程 均 由 其 它 进 程 调 用 fork() 创 建 。 如 0# 进 程 调 用 fork()创建1#进程,再由1#进程使用fork()为每个可用于用 户登录的通信端口创建一个进程为用户服务,如等待用户登 录、执行shell命令解释程序等等。
2021/1/30
3
Linux中用户子进程的创建与调度执行
用户可以在自己的进程中创建多个子进程以实现多个不同任 务 的 并 发 执 行 。 Linux 提 供 的 创 建 子 进 程 的 系 统 调 用 是 fork()。
格式: int fork( )
返回值: =0 创建成功,从子进程返回;
>0 创建成功,从父进程返回,其值为子进程的PID号;
while( ( p=fork( ) ) ==-1); //创建子进程直到成功为止
if (p == 0)
//返回值=0表示子进程返回
{
/*此处插入子进程程序段*/
}
else
//返回值>0表示父进程返回
{
/*此处插入父进程程序段*/
}
}
2021/1/30
6
➢ 子进程创建后,子进程的映像复制了父进程的数据与堆栈空间,并继承 父进程的用户代码、组代码、环境变量、已打开的文件数组、工作目录 以及资源限制等等,这些继承是通过复制得来的,所以子进程映像与父 进程映像是存储在两个不同的地址空间中内容相同的程序副本,这就意 味着父进程和子进程在各自的存储空间上运行着内容相同的程序。因此, 一个程序中如果使用了fork(),那么当程序运行后,该程序就会在两个 进程实体中出现,就会因两个进程的调度而被执行两次。