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

和朋友合伙做网站调价智能关键词软件

和朋友合伙做网站,调价智能关键词软件,空间网站打不开,找人做网站需要多少钱进程的基本概念 进程的相关命令 进程的相关函数 进程的终止 一、进程的基本概念 1. 定义:进程是一个程序执行的过程(也可以说是正在运行的程序),会去分配内存资源,cpu的调度,它是并发的。 2. PCB块 1&…

进程的基本概念
进程的相关命令
进程的相关函数
进程的终止


一、进程的基本概念


1. 定义:进程是一个程序执行的过程(也可以说是正在运行的程序),会去分配内存资源,cpu的调度,它是并发的。

2. PCB块

        1)PCB是一个结构体(对应的结构体为task_struct),全名是process control block

(进程控制块)/print circuit board;

 

  2)一个程序运行就有对应的一块pcb块,它记录着运行程序的所有信息和状态。

        3) pcb中包含着:

PID—进程标识符(区分进程用的是ID号)
chdir—当前工作路径
umask 0002--合适的权限
fds—进程打开的文件列表
signal—信号相关设置 处理异步io:
用户id,组id:记录谁运行的,与权限有关
进程资源的上限(ulimit -a,显示资源上限); 

 

3.进程与线程的区别

        1)程序是静态的,存储在硬盘中代码,数据的集合;

        2)进程是动态,程序执行的过程,包括进程的创建、调度、消亡;

        .c ----> a.out-----> process(pid)

        3)

        (1)程序是永存,进程是暂时的

      (2)进程有程序状态的变化,程序没有

      (3)进程可以并发,程序无并发

      (4)进程与进程会存在竞争计算机的资源

      (5)一个程序可以运行多次,变成多个进程;一个进程可以运行一个或多个程序

4.内存空间

        1)内存空间示意图:

  2)其中内存分布图(重点):虚拟内存/虚拟地址 

 

(1)code(代码段):只读特性

(2)data(数据段):可读可写;装全局变量、静态变量(带初值)(bss:未初

                                        始化变量)

(3)heap(堆区):可读可写;动态内存空间,程序员使用malloc申请

(4)Map/share(映射/共享区):只读;外部代码共享过来

(5)Stack 8M(栈):可读可写;最大不超过8M

 

 

   3) 虚拟地址空间共4G:0~ 3G,是进程的空间,3G~4G是内核的空间

        4)虚拟内存/地址 :透明、隔离、权限

        5)映射表

        (1)映射表将虚拟内存的地址转换为物理内存的地址;

        (2)映射表通常由页表(Page Table)组成,它记录了虚拟地址到物理地址的映射关系;

        (3)一个页面大小通常为4k(4036字节);

注:MMU:物理地址转为内存地址。

5.进程的状态

        1)基本操作系统三个操作状态:就绪→执行态→阻塞(等待,睡眠);

             就绪状态:进程已经准备好执行,所有的资源都已分配,只等待CPU时间执行

 

  2) linux中的状态:运行态,睡眠态,僵尸,暂停态;

          Linux进程状态及转换关系:

6.进程的分类

        1)交互式进程

        2)批处理进程 (shell脚本)(批量执行一次命令)

        3) 守护进程(程序走起来不需要输入,eg:杀毒类软件、启动输入法)

7.进程的作用

        1)并发性:允许多个进程同时运行,提高了CPU利用率和系统响应速度;

        2)稳定性:如果一个进程发生错误,通常不会影响到其他进程,这提高了系统的稳定性。

8.进程的调度

        1)调度器通过调度策略来决定哪个进程先运行;

        2)内核主要功能之一就是完成进程调度, 硬件,bios,io,文件系统,驱动;

        3)调度算法:other(常规默认的),idle,rr,fifo

                        先来先服务   短任务优先   优先级    时间片轮转

        4)扩展

        (1)分时操作系统:Linux、Windows(尽量在规定时间内完成)

        (2)实时操作系统:rt_thread ucos(规定时间内必须完成)

        5)进程上下文切换:就是值指调度器要切换CPU给另一个进程的时候,要保存当前进程的状态,然后加载打开一个新的进程这样的一个过程。

        6)宏观并行:在一个时间段多个任务和进程是同时进行的

        7)微观串行:在一个时间点只能一条一条指令执行

二、进程的相关命令

1、ps aux
         主要看进程号、进程状态

查看进程相关信息:(PROCESS STATE CODES)
(1)就绪态、运行态 —— R
(2)睡眠态、等待态
        可唤醒等待态 ——S
        不可唤醒等待态 ——D
(3)停止态 ——T
(4)僵尸态 ——Z

(5)结束态

 

2、top 

根据CPU占用率查看进程相关信息(3秒刷一下)
PR NI 表示优先级
数字越小代表优先级越高 

3、kill和killall
    发送一个信号 

kill -2 PID 15

(其中PID为接受者,终端为发送者)
发送信号+PID对应的进程,默认接收者关闭

killall -9 进程名(强制关闭)
发送信号 进程名对应的所有进程
killall a.out

 

三、进程的相关函数
(一)fork函数
1、函数原型:pid_t fork();

2、特点:

(1)一次调用,会返回两次;

(2)子进程先运行和是父进程先进程,顺序不确定;

(3)变量不共享(虚拟隔离机制);

(4)子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同(子的id比父大)。

3、功能:

 

(1)通过该函数可以从当前进程中克隆一个同名新进程;

(2)克隆的进程称为子进程,原有的进程称为 父进程;

(3)子进程是父进程的完全拷贝;

(4)子进程的执行过程是从fork函数之后执行;

(5)子进程与父进程具有相同的代码逻辑。

4、返回值:int 类型的数字;

(1)在父进程中:成功 返回值是子进程的pid号 >0 

                               失败 返回-1;

(2)在子进程中:成功 返回值 0

                               失败 无

面试问题:

1、一次fork生成几个进程?他们之间的关系是什么样的?

       答: 一次fork生成两个进程,父子关系。

2、如果两次fork同时前后执行,会生成几个进程?他们之间的关系如何表示,有多少个子进程,有没有孙进程?
       答:会生成三个进程,父进程,子进程和孙进程。

 

5、注:左边是父进程,右边为子进程(代码段完全一样,起始地方不同) 

6、运行代码示例: 

 

(二)getpid函数
1、函数原型:pid_t getpid(void);

2、功能:获得调用该函数进程的pid

3、参数:缺省

4、返回值:进程的pid

(三)getppid函数
1、函数原型:pid_t getppid(void);

2、功能:获得调用该函数进程的父进程pid号

3、参数:缺省

4、返回值:返回父进程id号

(四)示例
1、代码:

 

2、运行结果:

注:子进程与父进程谁先消亡是随机的,谁跑得快谁先消亡

(1)子进程先消亡:

 

(2)父进程先消亡: 

 

3、应用场合:

(1)一个进程希望复制自己,使父子进程同时执行同的代码段。网络服务中会比较多见。

(2)一个进程需要执行一个不同的程序。fork+exec

4、扩展命令:

(1)ps aux | grep xxx(xxx为pid号)查找pid号在哪

(2)pstree  显示进程树状关系图

         petree -p 显示pid号的树状图

(五)父子进程的关系
1、子进程是父进程的副本,子进程获得父进程数据段,堆、栈正文段共享;

2、区别:

(1)fork的返回值 父的是大于0,子是等于0;

(2)pid不同 子相对于父至少要加个1;

(六)写时复制

 

1、定义:写时复制是计算机编程里的一种优化策略。它的核心思想在于,进行数据修改操作时,并非马上复制整个数据对象,而是要等到真正需要修改数据的那个时刻才执行复制操作。这样做能够避免不必要的数据复制,进而提升系统性能,提高资源利用率。

2、优点:提高效率、创建子进程速度快、开的空间少、回收速度快。

四、进程的终止


1、主动退出

(1)main 中 return

(2)exit(), c库函数,会执行io库的清理工作,关闭所有的流,以及所有打开的文件。已经清理函数(atexit);(函数一调,进程结束,再退之前释放该释放的资源)

(3)_exit,_Exit 会关闭所有的已经打开的文件,不执行清理函数。(单调函数,进程结束,但清理的相对较少)

(4) 主线程退出

(5)主线程调用pthread_exit

2、异常终止

(6)abort(),该函数禁止应用层调用,发生严重错误系统调用;

(7)signal   kill pid   有权限的发送信号(内存访问错误则发送信号结束)

(8)最后一个线程被pthread_cancle(线程属于进程的一部分,进程里面无线程会退出)

http://www.dtcms.com/wzjs/505833.html

相关文章:

  • 男女做那个真实视频网站百度问答平台入口
  • 微网站摇一摇seo怎么做排名
  • 沈阳网站app制作seo搜索
  • 深圳做网站980app广告联盟平台
  • 用c语言可以做网站吗全网营销系统是不是传销
  • 医疗网站建设机构在线培训app
  • 做网站需要办什么手续怎么创建一个网页
  • 石家庄模板建站行业解决方案推广网站都有哪些
  • 做网站订阅号重庆seo整站优化方案范文
  • 温江网站制作seo网站编辑是做什么的
  • 网站源码还可以做授权么网络培训心得体会
  • 学校网站的目的网站设计公司建设网站
  • 嘉峪关建设厅官方网站海口seo快速排名优化
  • 教学类网站怎么做正规seo多少钱
  • 南宁网站建设服务seo工具查询
  • 网站不做icp备案爱站工具包的模块有哪些
  • 萧山网站制作公司如何网络营销自己的产品
  • 帮人做彩票网站有事吗网络营销的策略包括
  • 映射做网站seo排名第一的企业
  • 自助式建网站知识搜索引擎
  • 做本地的分类信息网站如何进行网站推广?网站推广的基本手段有哪些
  • 海淀注册公司杭州seo靠谱
  • 榆中建设局网站seo也成搜索引擎优化
  • 广州建站服务商个人博客网站怎么做
  • 直销网站有没有适合在家做的手工活网站友情链接交易平台
  • 东营做网站哪家好营业推广策划
  • 网站目录创建下载链接免费做网站网站的软件
  • 网站建设合同的注意事项公司网站建设步骤
  • wordpress的官网seo免费
  • 绿色食品网站模板.htm网站链接提交收录