进程的相关概念 - Go语言中文社区

进程的相关概念


1、定义:已经运行的应用程序

2、程序和进程

  • 程序:二进制文件,占用磁盘空间
  • 进程:启动的程序,所有的数据都在内存中,需要占用更多的系统资源(CPU,物理内存)

3、并行和并发

并发和并行在宏观上都是同时处理多路请求的概念,但并发和并行又有区别

  • 并发:是指不同事件在同一时间间隔内执行,例如:要求在100分钟内让100个人都喝上咖啡,但是只有一台咖啡机,解决方法是将100分钟分成100份,每个人接1分钟,这样就可以满足要求。在操作系统层面上CPU就好比这台咖啡机,100个人就相当于各种进程,在同一段时间内要同时运行QQ、微信等各种进程,在用户看来好像是这些应用程序同时执行,实际上是在同一时间间隔内CPU轮流进行处理,得益于CPU处理速度非常快,因此我们感觉好像是同时运行多个程序。
  • 并行:是指不同事件在同一时刻执行。就好比上文中提到的如果有100台咖啡机,那么就可以满足在同一时刻100个人都在喝咖啡,计算机亦是如此,如果有多个CPU进行处理,就可以实现让多个进程同时运行。

4、进程控制块pcb

      每个进程都有pcb,pcb实际上就是一个结构体,这个结构体存储着进程的相关信息,具体包括如下:

  • 进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。
  • 进程的状态:就绪、运行、挂起、阻塞等状态。
  • 进程切换时需要保存和恢复的一些CPU寄存器。
  • 描述虚拟地址空间的信息。
  • 描述控制终端的信息。
  • 当前的工作目录(进程在哪个目录下运行)。
  • umask掩码。
  • 文件描述符表,包含很多指向file结构体的指针。
  • 和信号相关的信息。
  • 用户id和组id。
  • 会话(多个进程组)和进程组。
  • 进程可以使用的资源上限。

5、进程的五种状态

6、进程相关的命令

  • ps  查看进程信息(查询具体信息使用不同的参数)
  • kill - 向指定的进程发送信号,kill -9 无条件杀死进程

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41727218/article/details/81327109
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-10-27 20:34:35
  • 阅读 ( 933 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢