Linux进程概念总结

news2024/9/23 12:33:55

这里总结下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.coloradmin.cn/o/1679487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI绘画提示词案例(车

目录 1. 提示词1——复古敞篷车:2. 提示词2——霓虹城市:3. 提示词3——沙滩SUV:4. 网站推荐——LibLib小结: 1. 提示词1——复古敞篷车: 正向提示词: In the quiet suburbs,a vintage-style convertible…

《海峡科技与产业》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《海峡科技与产业》期刊是什么级别? 答:国家级 主管单位:中华人民共和国科学技术部 主办单位:科技部海峡两岸科学技术交流中心 问:《海峡科技与产业》影响因子? 答:…

十大排序算法之->归并排序

一、归并排序简介 归并排序是一种基于分治策略的有效且稳定的排序算法。归并排序由约翰冯诺伊曼提出,是计算机科学中一个非常基础且历史悠久的算法。 归并排序利用分治法的策略,将一个大的数组拆分成几个小的子数组,这些子数组各自独立地排…

力扣82题删除排序链表中的重复元素

82题删除排序链表中的重复元素 题目描述 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 题目分析 这个题需要返回已排序链表,我们需要考虑一种情况就是头结点为重复元素&…

43k Star!推荐一款功能强大的开源笔记软件!

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

dubbo复习:(3) 服务超时时间配置

在dubbo admin中 可以进行类似如下配置 configVersion: v2.7 enabled: true configs:- side: consumeraddresses:- 0.0.0.0parameters:timeout: 55这样配置之后,当服务端响应超过55毫秒时,在服务消费者的控制台就会看到超时信息

##21 深入理解文本处理:使用PyTorch进行NLP基础操作

文章目录 前言简介文本预处理实现分词构建词汇表 文本向量化构建简单的文本分类模型结论 前言 在现代深度学习应用中,文本处理是不可或缺的一部分,尤其在自然语言处理(NLP)领域。借助强大的框架如PyTorch,我们可以更加…

软件测试常见面试题合集(内附详细答案)

01 软件测试理论部分 1.1 测试概念 1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试 单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码 集成测试:通过测试发现与…

【强化学习】DQN类算法的一些理解

一、DQN算法为什么要使用两个网络? DQN算法通常包含两个网络:一个是评估网络training_network,另一个是目标网络target_network。这两个网络的结构和初始权重是相同的,但它们的权重是不同步更新的。使用两个网络的原因是为了稳定…

【数组中重复的数据】leetcode,python

和上题一样,【找到所有数组中消失的数字】 换个判断条件就行 class Solution:def findDuplicates(self, nums: List[int]) -> List[int]:nlen(nums)for i in nums:x(i-1)%nnums[x]n#只需要替换条件即可return [i1 for i,num in enumerate(nums) if num>(2*n)…

easyx快速入门1

1.基本说明 EasyX 是针对 C 的图形库,可以帮助 C/C 初学者快速上手图形和游戏编程。 比如,可以基于 EasyX 图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练…

公共命名空间和RHP

概述 RHP的全称是:the little Robot that Helped me Program,帮我编程序的小机器人。 RHP必然存在,C语言的宏、C的模板,都是RHP;更复杂的例子,是lex和yacc,它们是制作程序的程序,也…

YOLOv9训练自己的数据集:最新最详细教程

一、代码及论文链接: 代码链接:https://github.com/WongKinYiu/yolov9/tree/main 论文链接:https://arxiv.org/abs/2402.13616 二、使用步骤 1.1 虚拟环境配置 创建一个虚拟环境用于单独对yolov9的环境进行配置: conda crea…

Latex问题1

问题 添加bib文件的引用后 \bibliographystyle{IEEEtran} \bibliography{IEEEabrv}之后,出现莫名其妙的错误,如下 IEEEabrv.bib是我的参考文献的bib文件,CCS_1.tex是我的tex文件,bib文件中的内容为 ARTICLE{1,author{Capponi,…

冥想训练具体方法有哪些|流静冥想

冥想是一种身体的放松和敏锐的警觉性相结合的状态。 每日练习的好处远不止你花在集中注意力的那几分钟。桑托雷利是建在乌斯特的马萨诸塞大学医学院的减压诊所的所长,她也是《自愈》的作者,她说:"冥想是一种工具,通过练习&a…

Python使用asyncio包实现异步编程

1. 异步编程 异步编程是一种编程范式,用于处理程序中需要等待异步操作完成后才能继续执行的情况。异步编程允许程序在执行耗时的操作时不被阻塞,而是在等待操作完成时继续执行其他任务。这对于处理诸如文件 I/O、网络请求、定时器等需要等待的操作非常有…

如何隐藏计算机IP地址,保证隐私安全?

隐藏计算机的IP地址在互联网在线活动种可以保护个人隐私,这是在线活动的一种常见做法,包括隐私问题、安全性和访问限制内容等场景。那么如何做到呢?有很5种方法分享。每种方法都有自己的优点和缺点。 1. 虚拟网络 当您连接到虚拟服务器时,您…

干什么副业好呢?

选择适合自己的副业可以根据个人的兴趣、技能和时间来决定。以下是一些常见的副业选择 1. 在线销售 可以在电商平台上开设自己的网店,销售自己感兴趣的产品,如手工艺品、服装、配饰等。 2. 做任务 网上我还在做的致米宝库,一个月有个一千多…

【go项目01_学习记录12】

代码组织 1 代码结构2 重构与测试2.1 安装测试功能2.2 testify 的常用断言函数 3 表组测试 1 代码结构 所有的代码写在一个main.go文件里面,GO编译器也是可以正常执行的。但是当代码量很庞大时,很难进行维护。 Go Web 程序的代码组织 单文件——反模式…

滑动窗口算法及相关习题

滑动窗口 又叫"同向双指针", left和right指针构成一个窗口 一般可以利用单调性时, 用到滑动窗口 使用: 定义left 0,right 0进窗口判断出窗口 还有一步是更新结果, 在哪一步更新是根据题意的 其中234步循环进行 一. 长度最小的子数组 答案 二.无重复字符的最长…