IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux 进程上下文 -> 正文阅读

[系统运维]linux 进程上下文

在这里插入图片描述
进程A 在用空空间中 执行read 操作时, 程序将陷入到内核空间,此时CPU 向通过地址总线告诉主存操作地址,通过控制总线告诉主存是要读,并且通过DMA 机制将磁盘中的数据搬运到 主存,此时磁盘控制器获取到总线控制权,CPU 不参与数据搬运。为了高效利用CPU linux 内核调度器会将CPU 分配给别的进程,此时CPU 会执行别的进程,直到磁盘控制器将数据由磁盘向主存搬运完毕后,向CPU 发送中断信号,然后CPU 转而又来执行A进程,此时read 返回。 上述过程就产生了进程的上下文切换。

在这里插入图片描述
内核模块:
PM 进程管理

VFS 文件系统
MM 内存管理
逻辑地址==》物理地址 段、页。。。
Network stack 网络协议栈

为什么 tcp/ip 协议栈放到linux内核中?
陷入到内核空间的方式:
软件中断 system call
硬件中断 例如 usb控制器中断

计算机原理中 进程的状态:
在这里插入图片描述
linux 操作系统的实现:
在这里插入图片描述
linux 编程:系统开发、系统移植、应用开发

bios===》boot===》 起linux init 进程
linux 的init 进程bin档的位置:
which init
linux 系统支持的最大进程数量:
cat /proc/sys/kernel/pid_max

fork() 函数,一次调用,两次返回,linux 是怎么做到的?
当调用fork()时,陷入到linux 内核中,linux 内核 copy 当前进程的 一个副本放到主存中,并且将进程副本对应的进程放到就绪队列中,这样,就做到了一次调用两次返回,两次放回一个是从当前进程中返回的,另外一个返回是从进程副本中返回的。本质是两个进程从各自的进程空间中返回。

子进程copy 父进程的那些东西?
代码段、堆栈、数据段、PCB(用于linux 内核控制进程)

文件描述符会copy吗? 文件锁会copy 吗?
fork() 调用为什么返回的是子进程的pid号?
目的是便于父进程控制子进程,一个父进程可以fork 多个子进程,哪个它想控制某个子进程就需要知道 子进程的id号,这个id号就是在call fork 函数时获取到的。也就是父进程对子进程是一对多的关系。 而子进程想要知道父进程的id 号,只需要通过getppid() 这个system call 就可以获取到了。
fork() 返回 要么返回 -1,要么返回0, 要么返回 子进程的pid。返回-1 代表进程创建失败了,失败的原因会被写到errno中。 errno 是每个进程默认创建的一个变量。
子进程为什么是从fork() 后的代码段开始执行?
因为copy 进程副本的时候 堆栈段也copy了,堆栈段就决定了子进程从哪里开始执行。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:16:52  更:2022-08-06 11:19:53 
 
开发: 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年5日历 -2024/5/18 21:38:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码