| |
|
开发:
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内核的组成部分 |
?linux内核的组成部分与关系 1.进程调度首先我们来理解“微观串行,宏观并行”,对于单核CPU来说,因为CPU运行速度是非常快的,对于大多数进程来说,会有阻塞状态,这时候就需要放出CPU资源,让给其他就绪的进程使用,才不会浪费CPU资源,等阻塞状态转为就绪态就可以在CPU被让出时从队列取出被执行了。对CPU来说,CPU只是按照某种顺序执行每行代码,并没有同时执行两个代码,这就是微观串行。但对于进程来说,两个程序都被CPU执行了,看起来时两个进程同时被执行,这就是宏观并行。总的来说这样的好处就是总进度变快了。
?linux进程转换 ?在Linux内核中,使用task_struct结构体来描述进程,该结构体中包含描述该进程内存资源、文件系统资源、文件资源、tty资源、信号处理等的指针。Linux的线程采用轻量级进程模型来实现,在用户空间通过pthread_create()API创建线程的时候,本质上内核只是创建了一个新的task_stru-ct,并将新task_struct的所有资源指针都指向创建它的那个task_struct的资源指针。
?2.内存管理
? ?linux进程地址空间 程序在内存上运行: 可以把内存管理理解为一个大型进程,里面有小型线程,但都是内核级线程。程序都是存储在存储器中的,CPU要得到程序内容,必须的从存储器对应的内容缓存到内存中来。编译的程序通常是以0作为起始地址的模块,多个目标模块再经过链接得到一个具有统一地址的装配模块,其素有目标模块地址的集合称为地址空间(逻辑上的概念)。物理内存的所有地址集合称为物理空间(物理上的概念),从0开始的一段连续空间,大小是由容量来决定的。 把逻辑空间重定位到物理空间有三种方法: 1.程序编译链接时;需要知道用户进程驻留地点的绝对地址 比如程序编译时从程序main函数从0x0000 0000(逻辑地址)开始,但是内存中0x0000 0000(物理地址)地址是另有他用的,该程序被读取到0x3000 0000的物理空间中,但这不是程序的入口就会发生错误,因此我们需要建立一个映射让是的CPU访问即使访问0x0000 0000时也能访问到main函数,也就是程序的入口,内存管理就是建立一个页(虚拟的内存)到物理块(实际存在的)的映射,这种转换过程称为地址重定位,该功能由MMU来负责。 重定位寄存器/页表寄存器是存储这逻辑地址和物理地址的偏移值,访问物理地址时,硬件上使得逻辑地址加上重定位寄存器的值得到代码的再内存中的真实的物理地址。 内存管理的功能: 1.为带运行的程序分配内存 这部分可以结合linux操作系统的书籍内存管理的部分看。
3.虚拟文件系统
?linux虚拟文件系统 4.网络接口
?linux网络体系结构 5.进程间通信
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/27 10:08:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |