| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 4.linux进程 -> 正文阅读 |
|
[系统运维]4.linux进程 |
想了解进程,要先了解操作系统(用来管理计算机的软硬件,为了更好的使用),要知道绝大多数电脑是满足冯诺依曼体系结构的,进程是执行的程序。 冯诺依曼体系组成 ?五大控制单元? ?输入设备 存储器? 输出设备? 运算器? 控制器 操作系统:用来管理计算机的软硬件 如何理解管理呢? 可分为两步,一.描述被管理对象 ? ? ? ? ? ? ? ? ? ? ?二.组织被管理对象 那如何描述与组织呢? 1.描述:用struct结构体描述。 2.组织:用链表或其他数据结构进行组织。 系统调用和库函数有什么关系呢? 用户使用操作系统暴露的接口开发使用,系统调用适度封装形成了库,库函数是系统调用的产物。 ?什么是进程呢?是内存中被触发的的程序。这也是我们上文提到冯诺依曼体系的原因。 PCB是进程控制块,本质上是一种数据结构,Linux中名为struct task_struct,用来描述进程的信息。 组织进程则是用数组或者链表等形式来处理一个个进程控制块(PCB)。 ls /proc 是查看进程 ?ps aux和top命令 ps aux 查看静态信息
top? 查看动态信息 ?创建进程? ? fork? ? 根据父进程信息创建一个子进程(PCB)从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。
我们还要了解僵尸进程的概念,什么是僵尸进程 当子进程退出,而父进程没有接收到子进程退出的返回值,那么子进程就是僵尸进程。 僵尸进程有危害?会占用浪费内存资源,可能造成空间浪费。严重导致内存泄露 了解了僵尸进程后,如果情况相反呢? 父进程先退出,这就是孤儿进程,父进程退出后,孤儿进程被1号init进程领养 查看系统进程 ps -l
进程的优先级决定了进程的执行 PRI(新) = PRI(旧) + NI
环境变量:操作系统运行环境的一些参数。常用的有,
那如何查看环境变量呢? 用echo $NAME //NAME:你的环境变量名称
获取环境变量 : printf("%s\n", getenv("PATH")); 程序地址空间 程序地址空间是虚拟空间,保护实际空间 再次认识进程创建fork 从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 通过内核空间开辟进程,复制父进程参数,fork有两个返回值,子进程返回值为0,父进程返回值为子进程pid。 接下来我们来认识写时拷贝,是等到修改数据时才真正分配内存空间,之前共用物理内存页。
而return和exit有什么区别呢? return n等同于执行exit(n),因为调用main的运行时函数会将main的返回值当做 exit的参数。 进程等待 wait 成功返回被等待进程pid,失败返回-1。 东西有点多,未完待续....... |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 18:00:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |