Linux进程概念总结

这里总结下Linux进程概念总结❗ 

冯诺依曼:

  • CPU   运算器与控制器
  • RAM 内存(存储器)
  • Cache 缓存(一种技术)不属于冯诺依曼体系结构。
  • ROM 磁盘(输入输出设备)
  • 磁盘 既可以从硬盘读取数据也可以向硬盘写入数据。
  • 冯诺依曼体系结构中数据输入设备的有键盘/磁盘。
  • 冯诺依曼体系结构计算机的基本原理 存储程序和程序控制。

操作系统:

  • 计算机就是为了完成指定的数据处理,而通过指令按指定流程完成指定功能,指令的合集就是一段程序。说白了计算机就是按照指定的指令执行流程完成对指定数据的处理。

  • 操作系统:操作系统的定位就是控制和管理计算机上软硬件资源让计算机更加好用

  • 编译器:对汇编语言,高级语言和甚高级语言程序进行翻译,将高级语言解释为机器指令能够被机器识别执行。这不是操作系统的主要功能,而是一个外部应用的主要功能。

  • 源程序以及数据库文件都是存储在磁盘上的,这是操作系统中文件系统管理部分的主要功能。

系统调用:

  • 应用程序通过系统调用将自己需要完成的功能传递给内核,进行执行完成。

  • 系统调用的运行过程是在内核态完成的,操作系统并不允许用户直接访问内核,也就是说用户运行态并不满足访问内核的权限。(系统调用函数的执行过程应该是不在用户态)

  • 系统调用就是想上层提供用于完成特定内核服务或功能的。利用系统调用能够得到操作系统提供的多种服务。

  • 是操作系统提供给编程人员的接口。

  • 系统调用给用户屏蔽了设备访问的细节,用户只需要将自己的请求以及数据通过系统调用接口传递给内核,内核中完成对应的设备访问过程,最终返回结果正确。

  • 系统调用保护了一些只能在内核模式执行的操作指令,系统向上层提供系统调用接口用于访问内核服务或功能的很大原因也是因为这样可以最大限度的保护内核的稳定运行。

  • 库函数是用户对系统调用接口的进一步封装接口
  • printf函数是glibc中封装的用于实现格式化输出的接口
  • scanf函数是glibc中封装的用于实现格式化输入的接口
  • fgetc函数是glibc中封装的用于实现从输入流中获取字符的接口
  • read是系统提供的用于从输入设备获取数据的接口
  • print_s以及scan_s这两个函数不存在,至少在C语言的常见典型的跨平台移植代码库中不存在。
  • fgetc是系统调用而不是库函数

 Linux的进程:

  • 僵尸进程指的是进程退出后不会完全释放资源,会造成系统资源泄漏。
  • 孤儿进程的父进程在它之前退出,会被 init 进程接管,不会造成资源浪费。
  • 孤儿进程在父进程退出后,父进程成为init进程,进程退出,孤儿进程的资源将被init进程释放。
  • 操作系统通过pcb实现对程序运行调度控制。
  • fork系统调用通过复制父进程创建一个子进程,父子进程数据独有,代码共享(在数据不发生改变的情况下父子进程资源指向同一块物理内存空间(调研写时拷贝技术))
  • 子进程如果对资源只是进行读操作,那么完全和父进程共享物理地址空间。
  • 进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux 下的线程本质上用进程实现。

在抢占式多任务处理中,进程被抢占时,哪些运行环境需要被保存下来?

  • ✔所有cpu寄存器的内容/全局变量/程序计数器
  • 所有cpu寄存器的内容 cpu上正在处理的数据
  • 全局变量  程序内的数据(并不一定正在被处理)
  • 页表指针 程序切换时会将页表起始地址加载到寄存器中
  • 程序计数器 下一步程序要执行的指令地址

  • 一个程序可以同时运行多次,也就有了多个进程。❌进程与程序是一一对应的。
  • 因为一个作业任务的完成可由多个进程组成,且必须至少由一个进程组成。❌进程与作业是一一对应的。
  • 进程是静态的。因为程序是静态的,而进程是动态的。
  • 进程是动态的过程。❌

进程PCB

  • 进程是操作系统对于程序运行过程的描述,而这个描述学名叫做进程控制块-PCB,它是操作系统操作系统管理以及调度控制程序运行的唯一实体。
  • 进程ID只是进程的标识符,是系统能够找到特定进程的标识而已。
  • 进程管理器只是对大量PCB进行管理的一个程序而已。
  • 进程本质上来说没有名字,它有所调度管理运行的程序的名称,它的标识是进程ID,可以理解进程ID是它的名字。
  • 在系统角度看来,进程就是对于程序运行的描述,就是PCB进程控制块。

❓考察fork创建子进程的过程, 同时理解fork函数的返回值

❓要求: 通过父子进程的返回值, 区分父子进程执行的逻辑, 重点:理解子进程为什么从fork函数调用之后开始执行

 🙂感谢大家的阅读,若有错误和不足,欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706899.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能数据提取:在严格数据治理与安全标准下的实践路径

一、引言 随着信息技术的飞速发展,数据已成为企业最宝贵的资产之一。然而,数据量的爆炸式增长和数据格式的多样化,使得传统的数据提取方法变得效率低下且难以满足业务需求。智能数据提取技术应运而生,它通过应用人工智能和机器学…

JETBRAINS IDES 分享一个2099通用试用码!DataGrip 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

了解RFID技术如何改善危化品仓储管理效率

随着科学的发展,我国化工行业也迎来飞速进步的黄金时期,而生产加工快速化的同时也导致一些危险化学品的使用量与存储量不断增加。由于危险化学品种类较多,使用和存储的方法都不一样,还具有易燃、易爆、腐蚀、毒害等特性&#xff0…

win编写bat脚本启动java服务

新建txt,编写,前台启动,出现cmd黑窗口 echo off start java -jar zhoao1.jar start java -jar zhoao2.jar pause完成后,重命名.bat 1、后台启动,不出现cmd黑窗口,app是窗口名称 echo off start "名…

[启明智显技术分享] 在ESP32环境搭建过程中,如果在VS Code中遇到乱码问题应该怎么解决

前言: 【启明智显】专注于HMI(人机交互)及AIoT(人工智能物联网)产品和解决方案的提供商,我们深知彩屏显示方案在现代物联网应用中的重要性。为此,我们一直致力于为客户提供彩屏显示方案相关的技…

PCB供电夹子DIY

在刷小红书的时候,看到了清华卓晴教授【https://zhuoqing.blog.csdn.net/】DIY的供电夹子,感觉对于自己DIY PCB的时候供电会比较方便,物料也比较简单,打算复刻一下。 使用物料 1、小夹子,文具店都有卖,选…

【Vim】

一、什么是Vim? Vim 是一个历史悠久的文本编辑器,可以追溯到 qed。 Bram Moolenaar 于 1991 年发布初始版本。Vim 有着悠久的历史;它起源于 Vi 编辑器(1976 年),至今仍在开发中。(Vim has a rich history; it origina…

Http文件下载的相关header

Http文件下载的相关header 在HTTP中,用于文件下载的常见响应头(response headers)包括: Content-Disposition: 用于指示浏览器应该如何处理响应体。在文件下载中,通常设置为 attachment; filename"filename.jpg&…

docker容器与centos宿主机时间一致设置

1、查看宿主机的系统时间 date -R 2、进入到容器中查看容器系统时间 docker exec -it storage /bin/bash date -R 3、查看容器系统时区 cat /etc/timezone 4、查看宿主机所在时区 timedatectl 5、创建容器时间,并退出进入的容器 6、将宿主日期复制到容器内部&…

PPT为何无法复制粘贴?附解决办法!

PPT文件里的内容无法复制,或者复制后无法粘贴,这是怎么回事呢? 这种情况,一般是因为PPT被设置了保护,设置了以“只读方式”打开,就无法进行复制粘贴了。PPT的“只读方式”不同,解决方法也不同&…

520告白好物有哪些?收下这份清单不迷茫!

在这个充满爱意的日子里,你是否正在为如何向心仪的人表达深情而犯愁?别担心,我们为你精心准备了一份520告白好物清单都是一些实用的礼品,为你提供多样化的选择,助你轻松传达爱意,让告白不再迷茫。快来看看吧…

【编程题-错题集】kotori和气球(组合数学)

牛客对应题目链接&#xff1a;kotori和气球 (nowcoder.com) 一、分析题目 简单的排列组合问题&#xff0c;结果等于 n 与 m-1 个 n - 1 的乘积。 二、代码 //值得学习的代码 #include <iostream>using namespace std;const int MOD 109;int main() {int n, m;cin >…