linux内核的五大模块分别是什么
发布时间 - 2020-09-29 00:00:00 点击率:次一、进程调度模块
(推荐教程:linux教程)
Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。
【进程创建】:
在Linux环境编程时,一般采用fork()/vfork()函数(fork 是 创建一个子进程,并把父进程的内存数据copy到子进程中;vfork是 创建一
个子进程,并和父进程的内存数据share一起用)来创建新的进程,当然,那是在用户空间的函数,它会调用内核中的clone()系统调用,由clone()函数继续调用do_fork()完成进程的创建。
fork()/vfork()/_clone--->clone()--->do_fork()--->copy_process()
【进程撤销】:
进程终止后,需要通知内核以便内核释放进程所拥有的资源,包括内存、打开文件以及其他资源,如信号量。进程终止的一般方式是调用exit()库函数,该函数释放C函数库所分配的资源,执行编程者所注册的每个函数,并结束从系统回收进程的那个系统调用。
【进程切换】:
进程切换又称为任务切换、上下文切换。它是这样一种行为,为了控制进程的执行,内核挂起当前在CPU上运行的进程,并恢复以前挂起的某个进程的执行。
在本质上,每个进程切换由两部分组成:
切换页全局目录以安装一个新的地址空间;切换内核态堆栈和硬件上下文,因为硬件上下文提供了内核执行新进程所需要的所有信息,包括CPU寄存器,主要有switch_to()函数完成。
【进程调度】:
现代的Linux中,调度算法可以在固定时间内(与可运行进程数量无关)选中要运行的进程。首先,我们必须知道进程可以分为实时进程与普通进程。每个LInux进程总是按照如下的调度类型被调度:先进先出的实时进程、时间片轮转的实时进程、普通的分时进程。调度算法根据进程是普通进程还是实时进程而有很大不同。
二、进程间通信模块
进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不同的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。一般情况下,当一个进程等待硬件操作完成时,会被挂起。当硬件操作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。
进程间通信模块保证了Linux支持多种进程间通信机制,包括管道、命名管道、消息队列、信号量和共享内存等。
三、内存管理模块
Linux的内存管理模块采用先进的虚拟存储机制,实现对多进程的存储管理。它提供了十分可靠的存储保护措施,对进程赋予不同的权限,用户不能直接访问系统的程序和数据,保证了系统的安全性。同时,为每个用户进程分配一个相互独立的虚拟地址空间。
四、文件系统模块
Linux 的文件系统模块采用先进的虚拟文件系统(VFS)技术,屏蔽了各种文件系统的差别,为处理各种不同的文件系统提供了统一的接口,支持多种不同的物理文件系统达90多种。同时,Linux把各种硬件设备看作一种特殊的文件来处理,用管理文件的方法管理设备,非常方便、有效。
五、网络接口模块
Linux具有最强大的网络功能。网络接口模块通过套接字(Socket)机制实现计算机之间的网络通信,并采用网络层次模型提供对多种网络协议和网络硬件设备的支持。
网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序则主要负责与硬件设备进行通信,每一种可能的网络硬件设备都有相应的设备驱动程序。
# linux
# 接口
# 栈
# 堆
# copy
# 算法
# 文件系统
# 信号量
# 挂起
# 每一种
# 管理模块
# 设备驱动程序
# 是在
# 都有
# 它是
# 时间内
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
Laravel PHP版本要求一览_Laravel各版本环境要求对照
iOS中将个别页面强制横屏其他页面竖屏
中山网站推广排名,中山信息港登录入口?
如何在IIS中新建站点并配置端口与物理路径?
Java类加载基本过程详细介绍
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
浅述节点的创建及常见功能的实现
北京网站制作公司哪家好一点,北京租房网站有哪些?
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何自定义建站之星模板颜色并下载新样式?
南京网站制作费用,南京远驱官方网站?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何将凡科建站内容保存为本地文件?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
linux top下的 minerd 木马清除方法
phpredis提高消息队列的实时性方法(推荐)
高防服务器:AI智能防御DDoS攻击与数据安全保障
活动邀请函制作网站有哪些,活动邀请函文案?
如何确保西部建站助手FTP传输的安全性?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
网站制作软件免费下载安装,有哪些免费下载的软件网站?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
MySQL查询结果复制到新表的方法(更新、插入)
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Android滚轮选择时间控件使用详解
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
黑客入侵网站服务器的常见手法有哪些?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
做企业网站制作流程,企业网站制作基本流程有哪些?
5种Android数据存储方式汇总
EditPlus中的正则表达式 实战(1)
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
如何在腾讯云服务器快速搭建个人网站?
如何自定义建站之星网站的导航菜单样式?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
香港服务器部署网站为何提示未备案?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
如何在IIS管理器中快速创建并配置网站?

