进程相关概念

一、程序和进程

程序,是编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁等)
进程,是一个抽象概念,与操作系统原理紧密联系,进程是活跃的程序,占用系统资源。在内存中执行(程序运行起来,产生一个进程)

程序 ==》剧本(纸)     进程==》戏(舞台、演员、灯光、道具)

同一个剧本可以在多个舞台同时上演,同样,同一个程序也可以在加载为不同的进程(批次之间互不影响)
如:同时开两个终端。个自都有一个bash但彼此ID不同。

 

二、并发

并发,在操作系统中,一个时间段有多个进程都处于已启动运行到运行完毕之间的状态,但,在任一时刻点上仍只有一个进程在运行。

 

三、多道程序设计

在计算机内存中同时存放几道相互独立的程序,它们在管理程序控制之下,相互穿插的运行。多道程序设计必须有硬件基础作为保证。

时钟中断即为多道程序设计模型的理论基础。并发时,任意进程在执行期间都不希望放弃CPU。因此系统需要一种强制让进程让出CPU资源的手段。时钟中断有硬件基础作为保障,对进程而言不可抗拒,操作系统中的中断处理函数,来负责调度程序得人执行。

在多道程序设计模型中,多个进程轮流使用CPU(分时复用CPU资源),而当下常见CPU为纳秒级,1秒可以执行大约10亿挑指令。由于人眼的反应速度是毫秒级,所以看似同时在运行。

实质上,并发是宏观并行,微观串行。

 

四、CPU和MMU

 

五、MMU

 

六、虚拟地址空间

 

七、进程控制块PCB

我们知道。每个进程内核中都有一个(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。

/usr/src/linux-headers-3.16.0-30/inlcude/linux/sched.h文件中可以查看struct task_struct结构体定义。其内部成员很多,我们重点掌握以下部分即可:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值