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

久久建筑网施工方案好用吗广州优化公司哪家好

久久建筑网施工方案好用吗,广州优化公司哪家好,人才招聘网站开发背景,厦门市建设与管理局1.进程理解: 进程就是pcb结构对象加自己的代码数据----这个pcb结构里面包含了所有进程的属性信息 2.通过系统调用创建进程: fork初识:对于fork的介绍首先就是fork函数有两个返回值,这一点是比较罕见的。 图中代码段&#xff1a…

1.进程理解:

进程就是pcb结构对象加自己的代码数据----这个pcb结构里面包含了所有进程的属性信息

2.通过系统调用创建进程:

fork初识:对于fork的介绍首先就是fork函数有两个返回值,这一点是比较罕见的。

图中代码段:

#include<stdio.h>
#include<unistd.h>
int main()
{printf("process\n");pid_t id=fork();	
//	pid_t id=getpid();if(id==0){while(1){printf("son process:pid :%d,ppid:%d\n",getpid(),getppid());sleep(1);}}else if(id>0){while(1){	printf("parent process:pid :%d,ppid:%d\n",getpid(),getppid());sleep(1);}}else{printf("errror\n");}//printf("hello hush\n");
//	printf("PID: %d\n",getpid());
//	sleep(1);return 0;
}

返回不同的返回值目的就是为了区分让不同执行流,执行不同的代码块

一般而言fork之后的代码是父子共享的,给父进程返回子进程的pid是为了让父进程(父亲)可以区分每一个子进程(儿女) 

我们为什么要创建子进程?为了让父与子执行不同的事情,需要想办法让父与子执行不同的代码块

下面这张图帮你了解fork函数究竟干了什么?

关于为什么可以让父子共享代码是因为:代码是不可以被修改的,而数据不能共享是因为数据是可以修改的!

  • 进程创建:Linux 中 fork 函数创建子进程,通常借助写时拷贝,父子进程先共享内存页,当任意一方试图修改内存页数据时,才复制对应内存页,生成独立副本。这样能快速创建子进程,减少内存占用。

父子进程被创建好,fork()往后是谁先运行,是由调度器决定的。

这里介绍一个实时查看进程的命令:

while :; do ps axj | head -1;ps axj | grep proc |grep -v grep;echo "---------------------------";sleep 1;done

3.进程状态: 

先简单介绍一下OS中的一些进程状态:

在操作系统里,你可以把进程想象成一个个正在处理任务的 “小助手”,它们有不同的工作状态。运行状态就是某个 “小助手” 正占用着 CPU(相当于拥有了工作场地和工具),全力处理着任务 ;阻塞状态则是 “小助手” 在等待一些条件满足才能继续工作,比如在等其他同事传递数据、等打印机完成打印等,即便给它工作场地(CPU),它也没办法干活;挂起状态呢,就像是内存(工作空间)不够用了,操作系统把一些暂时用不到的 “小助手” 的资料(进程数据和代码)先移到外存(比如磁盘,相当于仓库)存放,等后续内存空间足够或者有其他合适条件时,再把这些 “小助手” 的资料调回内存继续工作。

每一个进程都有一个叫做:时间片的概念

运行态R:

阻塞态:

大量的把进程从CPU是放上去;拿下来的动作叫做进程切换。

挂起在操作系统内存资源不足的时候,把阻塞状态的进程换出到磁盘中,这个等待内存资源OK,这个状态叫挂起状态,等内存资源好了再换入

4.在Linux系统下状态是如何维护的:

  • R 运行状态(running):并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。
  • S 睡眠状态(sleeping):意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))。
  • D 磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待 IO 的结束。
  • T 停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。

进入断点位置,进程状态变为了追踪暂停

  • X 死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态。

僵尸进程危害

  • 进程的退出状态必须被维持下去,因为它要告诉关心它的进程(父进程)任务完成情况。若父进程一直不读取,子进程就一直处于 Z 状态。
  • 维护退出状态需用数据,这属于进程基本信息,存于 task_struct (PCB) 中。即 Z 状态不退出,就一直要维护 PCB。
  • 若一个父进程创建很多子进程却不回收,会造成内存资源浪费。因为数据结构对象会占用内存,如同 C 中定义结构体变量需在内存开辟空间。
  • 这会导致内存泄漏。

如果子进程先结束(pid) 父进程不受影响,但是如果父进程ppid先结束了,那子进程也会继续执行但是子进程的父进程就会更新为1ppid,此时的1就是操作系统。

5.进程优先级

基本概念
  • cpu 资源分配的先后顺序,就是指进程的优先权(priority)。
  • 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的 linux 很有用,可以改善系统性能。
  • 还可以把进程运行到指定的 CPU 上,将不重要的进程安排到某个 CPU,可大大改善系统整体性能 。

PRI and NI

  • PRI 即进程的优先级,也就是程序被 CPU 执行的先后顺序,此值越小进程的优先级别越高。
  • NI 即 nice 值,表示进程可被执行的优先级的修正数值。
  • PRI 值越小越快被执行,加入 nice 值后,PRI 变为:PRI (new)=PRI (old)+nice。
  • 当 nice 值为负值时,程序优先级值变小,优先级变高,越快被执行
  • 在 Linux 下调整进程优先级,就是调整进程 nice 值,nice 取值范围是 - 20 至 19,共 40 个级别。

PRI vs NI

  • 进程的 nice 值不是进程的优先级,二者概念不同,但 nice 值会影响进程优先级变化。
  • nice 值是进程优先级的修正数据 。
http://www.dtcms.com/wzjs/95665.html

相关文章:

  • 先买域名不建设网站吗怎样推广自己的app
  • seo关键词外包公司官网整站优化
  • 企业网站建设联系方式优化大师的使用方法
  • 老外的网站怎么做微信群二维码推广平台
  • 小程序代理是不是骗局宁波企业seo推广
  • 想要标注倾斜直线的实际长度网站seo推广排名
  • 网站建设用什么软件做百度预测大数据官网
  • 咸阳学校网站建设哪家好新产品的推广销售方法
  • 我们不是做网站的网络营销和网络销售的关系
  • 深圳做网站公司那家比较好网站推广优化方案
  • 房地产中介网站建设关键词排名客服
  • 做家电网是什么网站郑州做网站最好的公司
  • 网站开发有哪些谷歌优化技巧
  • 怎么做自己的淘宝客网站网站优化网站
  • 个人空间备案网站名称中国搜索
  • 营销网站建设 公司排名微商刚起步怎么找客源
  • 2016网站设计规范torrentkitty搜索引擎
  • 克隆网站首页做单页站几个文件夹怎么注册网站
  • 下厨房网站学做蒸包视频关键字参数
  • 手机网站开发价格网站推广方案
  • 怎么做 在线电影网站湖北网站seo
  • 日本做暧小视频在线观看网站搜索百度一下
  • 做cpa网站淘宝补流量平台
  • 苏州市网站建设淘宝搜索排名
  • 网站怎么添加代码长沙网站制作推广
  • 大兴网站建设公司企业培训内容
  • 腾讯云快速搭建网站临沂seo推广
  • wordpress文章更新后东莞关键词优化实力乐云seo
  • 网络广告的优势有哪些排名怎么优化快
  • 网站设计心的网络平台推广具体是怎么推广