| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 《进程的概念(一)》 -> 正文阅读 |
|
[系统运维]《进程的概念(一)》 |
【一】基本概念 课本概念:程序的一个执行实例,正在执行的程序等 内核观点:担当分配系统资源(CPU时间,内存)的实体 【二】描述进程——PCB 进程信息被放置在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合 课本上称之为PCB(process control block),Linux操作系统下的PCB是task struck a.task_struct-pcb的一种 在Linux中描述进程的的结构体叫做task_struct。 task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并包含着进程的信息 b.task_struct内容分类 标识符:描述本进程的唯一标识符,用来区别其他进程 状态:任务状态,推出代码,退出信号等 优先级:相较于其他程序的优先级 程序计数器:程序中即将被执行的下一条指令的地址 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针 上下文的数据:进程执行时处理器中的寄存器数据 I/O状态信息:包括现实的I/O请求,分配给进程的和被进程使用的文件列表 记账信息:可能包括处理器时间的总和,使用的时钟数总和,时间限制,记帐号等 其他信息 【三】组织进程 可以在内核源代码中找到它,所有运行在系统里的进程都以task_struct链表的形式存在内核里。 【四】查看进程 1.进程的信息可以通过/proc系统文件查看 ls /proc ?大多数进程信息同样可以使用top和ps这些用户级工具来获取 我运行起了Proc这个可执行程序: 此时查看进程信息: ? ?【五】通过系统调用创建进程-fork初始 什么是fork呢?看看Linux的使用手册就知道了 ?这个手册告诉我们folk是用来创建一个进程的,且目前这个进程是他的父进程 fork返回值: 负数:如果出错,则fork()返回-1,此时没有创建新的进程,最初的进程任然运行 零:在子进程中,fork()返回0 正数:在负进程中,fork()返回fork创建子进程。 以上就是关于进程的浅析,如果写的有问题还请位于评论区斧正,如果没问题的话,还请一件三连,点点关注。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 6:26:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |