当前位置: 首页 > news >正文

嘉兴网站广优化公司北京高端商场

嘉兴网站广优化公司,北京高端商场,上海的加盟网站建设,wordpress 页面 js一、进程的状态 1.1 进程的状态 1.1.1 并行与并发 • 并行: 多个进程在多个CPU下分别,同时进行运行 • 并发: 多个进程在一个CPU下采用进程切换的方式,在一个时间片内,让多个进程都得以推进 1.1.2 时间片的概念 LInux/windows这些民用级别…

一、进程的状态

1.1 进程的状态

在这里插入图片描述

1.1.1 并行与并发

并行: 多个进程在多个CPU下分别,同时进行运行
并发: 多个进程在一个CPU下采用进程切换的方式,在一个时间片内,让多个进程都得以推进

1.1.2 时间片的概念

LInux/windows这些民用级别的操作系统都是分时操作系统,根据时间片进行调度轮转的,与之相对的是实时操作系统

1.1.3 进程具有独立性

上一篇博客中已经讲过。

1.1.4 认识运行、阻塞与挂起

• 在CPU中有一个runqueue,操作系统会根据FIFO获取进程并将进程基于时间片进行调度轮转,因而只要进程在runqueue中就已经是运行态
• 操作系统会对设备进行管理,因此有了struct device 对设备进行先描述后组织。当进程执行到某一位置时,可能会调用外部设备(如键盘),这时就会将进程链入waitqueue中,这一状态称为阻塞态
• 当内存内存资源严重不足时,操作系统会将等待队列的进程中的数据换出到磁盘中,而当用户完成指定操作后又会将数据换入到内存中,磁盘中支持此操作有专门的分区(swap分区)。这也就是阻塞挂起状态
• 对于阻塞挂起状态本质就是以时间换空间的做法,现在大部分的公司都会禁掉该操作。

1.2 Linux的进程状态

在这里插入图片描述

下面这段代码是Linux0.11版本中的状态源码:

/*
* The task state array is a strange "bitmap" of
* reasons to sleep. Thus "running" is zero, and
* you can test for combinations of others with
* simple bit tests.
*/
static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
"T (stopped)", /* 4 */
"t (tracing stop)", /* 8 */
"X (dead)", /* 16 */
"Z (zombie)", /* 32 */
};

R :运行状态
S :浅度休眠状态,可以被kill
D:磁盘休眠状态,不可被kill

D状态存在的意义在于,当内存资源严重不足时,操作系统可能会将正在向磁盘传输数据的进程杀掉以维持自身安全,但是数据是不可恢复的,一旦进程被终止,我们并不知道传输数据这个操作是否成功,因此引入了D状态,使得操作系统不能杀死处于D状态的程序。

T:暂停状态,通常是进程做了非法但不致命的操作,只能用kill -9终止
t :追踪暂停状态,常见调试时打断点
X:死亡状态
Z:僵尸状态,用于维护自己的task_struct,方便为了父进程读取进程退出信息

理解X状态和Z状态
• 进程创建的目的自然是为了完成用户的任务。那么进程就需要知道这个任务完成的情况,这样就需要将执行的进程的执行结果返回给父进程/操作系统。我们可以使用$?来查看最近的一个进程的退出信息。
•进程=内核数据结构(struct task_struct)+代码和数据。进程在退出时,首先立即释放的就是该进程的代码和数据。但是进程的退出信息需要返回给父进程/操作系统,而退出信息保存在task_struct中。因此进程的退出信息必须要被操作系统维护起来,方便用户的获取。*这时的进程状态就是Z状态。 *当进程的退出信息被父进程/操作系统获取之后,进程就销毁了,这时的进程就是X状态。


知道了当子进程退出,父进程没有退出时,子进程就是僵尸进程;那么当父进程退出,子进程没有退出时是什么情况呢?
这就是孤儿进程,子进程会被系统领养,当它退出时,系统会对这个子进程进行处理回收。

二、进程的优先级

2.1 概念

优先级本质上就是对某种资源获取的先后顺序,这种资源往往是稀缺的。在进程层次来看,优先级竞争的是CPU资源。

2.2 Linux进程优先级

我们可以使用ps -l 查到优先级信息:

[caryon@VM-24-10-centos ~]$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1001  6876  6875  0  80   0 - 29247 do_wai pts/0    00:00:00 bash
0 R  1001  6975  6876  0  80   0 - 38332 -      pts/0    00:00:00 ps

在task_struct中有优先级属性,它是通过几个int类型的变量来表示优先级的。优先级的数字越小,对应进程的优先级越高。
上图中的PRI和NI两个属性影响进程的优先级,其中PRI是默认优先级(80),NI是优先级的修正数据([-20,20))

优先级如何进行调整呢?
使用top指令,输入r,然后根据提示进行调整。

但是一般情况下我们不对优先级进行调整,即使调整也要保证nice值有一定的范围,这是因为我们的操作系统是分时操作系统,对进程的调度要尽量公平。

UID
上图中我们还看到了UID这一属性,UID全称User Identify,是用以标记进程是谁启动的。在文件显示时,我们可以使用ll -n来以数字显示文件的相关属性,这个数字也是UID。

[caryon@VM-24-10-centos linux]$ ll -n
total 2452
drwxrwxr-x 2 1001 1001   4096 Sep 16 11:39 test

前面我们知道文件有自己的权限,即拥有者、所属组;我们还知道Linux下一切皆文件,所有的操作都是进程操作,因此进程会记录是谁启动的这个进程。通过UID与文件的拥有者、所属组进行对比实现了对权限的控制。

http://www.sczhlp.com/news/127133/

相关文章:

  • 现在的建筑模板一般用什么网站seo收费
  • 农村网站建设调查报告学习制作网页的网站
  • 给网站做app海口网站建设fwlit
  • 浙江网站建设品牌设计手机微网站系统
  • 网站设计制作要多少钱学历提升机构的套路
  • 小说网站开发背景工作计划表
  • 众筹平台网站搭建wordpress如何连接到数据库
  • 网站备案号码南充房产网最新房价
  • 微信网站怎么收款免费推广平台软件有哪些
  • 怎么样查中企动力做的网站企业做年度公示在哪个网站
  • 吴江专业的网站建设品牌网络图
  • 网站建设与维护报告总结用flash做游戏下载网站
  • 石家庄大型网站建设什么app做网站
  • 互联网门户网站西安网站建设案例
  • 企业建网站方案网址大全实用网址
  • 网站开发技术指标竞价推广的优势有哪些
  • 网站服务名词解释搜索关键词排名优化技术
  • 如何做个网站推广自己产品网站建设的原理
  • 在哪个网站找学做包子网站建设客户调查需求表
  • 网站建设与管理期末试卷怎么找到那个网站
  • 自适应网站建设优化建站少儿编程老师需要具备什么条件
  • 做网站用哪个编程语言辽宁建设工程信息网盲盒系统
  • 网站开发的网站运动鞋子网站建设规划书
  • flash网站优化微商已经被国家定为传销了
  • 跑步机 东莞网站建设python运维网站开发
  • 阿里巴巴网站怎样做的漂亮杭州市西湖区建设局网站
  • 网站代码免费的适合个人做的网站有哪些东西
  • 泸州市往建局建设银行网站名称西安 网站开发 招聘
  • 与安网站建设网站建设与管理是哪个软件
  • 速拓科技是做网站加盟合作招商