Linux----进程概念
程序 : 程序指的是一系列有逻辑, 有顺序结构的指令.
进程 : 进程从两个角度来说:
1 用户角度: 进程从用户角度来说就是运行中的程序
2 操作系统的角度: 进程是操作系统对运行中程序的描述信息, 叫做进程描述符(程序控制块)简称PCB
PCB : 在Linux下PCB指的是在内核中的task_struct 结构体, 这个结构体中包含的就是相关程序的基本信息
task_struct的基本信息如下:
1 程序计时器: 程序中即将被执行的下一条指令的地址
2 上下文数据: 进程执行时处理器的寄存器中的数据
3 内存指针: 包括程序相关代码和进程相关数据的指针, 还有和其他进程共享的内存块的指针
4 记账信息: 可能包括处理器的时间总和, 使用的时钟总和, 时间限制,记账号等
5 进程的状态: 任务状态, 退出代码 退出信号等
6 优先级: 相对于其他进程的优先级
7 进程标识符PID: 描述本进程的唯一标识符,用来区别其他进程
查看进程的指令
**ps aux 或者 ps -ef **配合 |grep使用, 来查看所有进程或者单个进程的基本信息
进程创建
通过 fork() 实现一个进程的创建
fork()接口的实现原理是子进程通过复制父进程PCB中大部分的数据创建自己的PCB(内存指针,上下文数据,程序计数器) . 因此两个父子进程代码共享, 数据独有
返回值:判断是否创建进程成功, 分流父子进程
父进程: 返回的是子进程的 pid > 0
子进程: 返回的是0;
僵尸进程
僵尸进程时处于僵死态的进程
产生原因 : 父进程先于子进程退出 , 退出原因(返回值)保存在PCB中, 操作系统检测到进程退出后, 通知父进程, 但是父进程可能并没有关注子进程的退出, 这时候操作系统不能随意释放子进程的资源(因为父进程会孤关注子进程的死亡原因), 因此子进程就处于退出但是资源并没有完全释放的状态(僵死状态)
危害: 资源泄露, 新进程无法创建
解决方法 : 杀死父进程(退出原因的保存已经毫无意义)
孤儿进程
父进程先于子进程退出 (父进程退出后子进程会跑到后台运行) ,子进程被init进程收养 , 到后台运行.
优先级
优先级指的是一个层序划分–决定CPU资源的优先分配权
查看指令 : ps -l
PRI: PRI的值越小代表优先级越高
在Linux下优先级的调整是通过设置nice值进行的: PIR(new)=PIR(old)+nice
nice的取值范围为-20~19, 一共40个级别(进程的nice值不是进程的优先级.,但是他影响进程的优先级)
指令 :无锡妇科医院××× http://wapyyk.39.net/wx/zonghe/fc96e.html
程序启动前修改nice值 nice -n 5 ./test
调整已经存在的进程 renice -5 -p 5200 //调整进程pid为5200的进程
进程的竞争性: 进程之间具有竞争性, 竞争资源
进程的独立性: 进程之间应具备独立性, 保证进程稳定性
并发: 进程在CPU上切换调度运行
并行: CPU资源足够, 进程就可以同时运行
虚拟地址空间和页表(分页式管理)
C / C++中的地址都是由虚拟地址空间, 虚拟地址空间在内核中就是一个结构体
mm_struct
通过虚拟地址访问;
物理地址与虚拟地址都是分页式的内存管理 页号 : 变量在虚拟地址中对应的存储位置(因为地址大小是10的20次方 , 所以页号的大小一共有20位), 因此一个虚拟地址中的前20位就是这个变量所对应的页号. 页内偏移 : 因为一个页面的大小是 4k 的,所以在一个页面上会存储多个变量的信息 . 而虚拟地址剩下的位就是存的这个变量在这个页面上的位置 页表(存储的就是页面信息) : 因此页表也很大, 也是从0开始排布 假设虚拟地址的页面为1, 则他指向也标志中1号页面的位置, 而页表中1号位置中所存储的就是这个虚拟地址的访问权限以及物理地址的页面页号 , 再将虚拟地址的页内偏移物理页面页号相结合 , 最后形成物理地址
转载于:https://blog.51cto.com/14335413/2396450
Linux----进程概念相关推荐
- 【Linux从青铜到王者】第五篇:Linux进程概念第一篇
系列文章目录 文章目录 系列文章目录 前言 一.冯诺依曼体系结构 二.操作系统 1.操作系统的概念 2.操作系统的目的 3.操作系统的定位 4.如何理解管理 5.操作系统总结 6.系统调用和库函数概念 ...
- 深入理解Linux进程概念
Linux进程概念 冯·诺依曼体系结构: 冯诺依曼体系结构作为现代计算机硬件体系结构,规定了现代计算机应该具有哪些硬件单元 输入设备 :键盘,鼠标,图像采集设备 ,声音采集设备 输出设备:显示器 ...
- Linux打怪通关攻略(16)Linux 进程概念
文章目录 Linux 进程概念 概念理解 进程的属性 进程的分类 进程的衍生 进程组与 Sessions 工作管理 Linux 进程概念 概念理解 首先程序与进程是什么?程序与进程又有什么区别? 程序 ...
- 【Linux进程概念】冯 诺依曼体系结构 操作系统 进程 fork 进程状态 优先级
文章目录 [写在前面] 一.冯 ? 诺依曼体系结构 ?? 体系结构 ?? 数据流向 ?? 实例 二.操作系统 (Operator System) ?? 概念 ?? 计算机体系及操作系统定位 ?? 管理 ...
- 【Linux】四、Linux 进程概念(上篇)
目录 前言 一.冯诺依曼体系结构 1.1 冯诺依曼体系结构是什么 1.2 冯诺依曼体系结构为什么这么设计 1.2.1 思考 1.2.2 了解一下计算机的存储分级 1.2.3 解释 1.3 往下要明确几 ...
- 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》
前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...
- Linux 进程概念
[基本概念] 1.程序(procedure):是执行一系列有逻辑.有顺序结构的指令,帮我们达成某个结果. 2.进程(process):是程序在一个数据集合上的一次执行过程,在早期的UNIX.Linux ...
- < Linux >:Linux 进程概念 (1)
目录 本章重点: 一.冯诺依曼体系结构 二.操作系统(Operator System) 2.1.概念 2.2.设计 OS 的目的 2.3.定位 2.4.系统调用和库函数的概念 三.进程 3.1.进程的 ...
- Linux进程概念(精讲)
文章目录 基本概念 描述进程-PCB task_struct-PCB的一种 task_struct内容分类 查看进程 通过系统目录查看 通过ps命令查看 通过系统调用获取进程的PID和PPID 通过系 ...
- 详解Linux进程概念
目录 1.基本常识及概念 1.1冯诺依曼体系结构 1.2操作系统 2.进程 2.1什么是进程 2.2描述进程--PCB 2.3 task_struct中的内容 3.进程的相关操作 3.1查看进程 3. ...
最新文章
- 有关 ecshop 属性 {$goods.goods_attr|nl2br} 标签的赋值问题
- python井字棋_用Python做一个井字棋小游戏
- (13)处理静态资源(自定义资源映射)【从零开始学Spring Boot】
- 工业局的云计算机,广州市海珠区科技工业商务和信息化局方奕涛局长带队二次调研云算...
- 网站 HTTP 升级 HTTPS 完全配置手册
- 汇报时,如何让老板快速抓住重点?—— 黄金三步法
- Python数模笔记-NetworkX(2)最短路径
- 新东方预计6个月亏损超8亿美元
- python电脑下载教程-电脑64位怎么下载python
- 谭浩强C语言(第三版)习题9.10
- 现代信号处理——参数估计理论(最大似然估计)
- ViewStub使用
- 智慧社区电商后台管理系统
- 新浪微博开放平台使用
- k8s service nodeport
- 你应该知道的八款国产操作系统
- 酸菜鱼,新一代微商暴富大机会?
- JAVA编写程序实现,由键盘输入两个整数,输出其中较大的数。
- 【转】 计算机视觉、图像处理学习资料汇总
- 4、CSS立体盒子动画——复仇者联盟