深入理解计算机系统 Chapter01 | 计算机系统漫游-下

简介: 深入理解计算机系统 Chapter01 | 计算机系统漫游-下

1.操作系统管理硬件


真正操纵硬件的是操作系统,操作系统可以看成是应用程序和硬件之间的中间层。所有的应用程序对硬件的操作必须通过操作系统来完成,这样做的目的是:首先,防止硬件被失控的应用程序所滥用;其次,操作系统提供统一的机制来控制这些复杂的底层硬件。

57.jpg

操作系统管理硬件


为了实现操作系统对硬件的操纵,操作系统引入了几个抽象的概念。文件是对IO设备的抽象、虚拟内存是对内存和磁盘IO的抽象、进程是对处理器、内存及IO设备的抽象


56.jpg

                                           操作系统的抽象机制

2.进程的解释


(1).以shell命令行中执行./hello命令为例进行说明,最开始的时候只有shell进程在运行,即shell在等待命令行的输入。


55.jpg

                                                           命令输入

(2).当通过shell进程加载hello进程时,shell进程通过系统调用来执行我们的请求。系统调用会将控制权从shell进程传递给操作系统,操作系统保存shell进程的上下文。然后,创建一个新的hello进程及其上下文。接着,将控制权转交给新的hello进程。hello进程执行完成后,操作系统会恢复shell进程的上下文,并且将控制权交给shell进程,之后shell进程继续等待下一个命令的输入。


54.jpg

                                                进程上下文切换


上下文:操作系统会跟踪进程运行中所需要的所有状态信息,这种状态(例如:当前PC和寄存器的值、内存中的内容等)称为上下文。


3.线程的解释


现代操作系统中一个进程由多个线程组成,每个线程都运行在进程的上下文中,共享代码和数据。


52.jpg

                                                          线程


4.虚拟内存


操作系统为每个进程提供了一个假象,即每个进程都在独自占用整个内存空间。每个进程看到的内存都是一样的,称之为虚拟地址空间。


51.jpg

                                                进程的虚拟地址空间

进程的虚拟地址空间:从下往上,地址是增大的。


  • 第一个区域:用来存放程序的代码和数据的,这个区域的内容是从可执行目标文件中加载而来的。对所有进程来说,代码都是从固定的地址开始的;
  • 第二个区域:堆heap,函数malloc所申请的地址空间就在这个堆中的,堆可以在运行时动态的扩展和收缩;
  • 第三个区域:共享库的存放区域,这个区域存放C语言的标准库和数学库这类共享库的代码和数据;
  • 第四个区域:用户栈,函数调用的本质就是压栈;
  • 第五个区域:为内核保留的区域,应用程序的代码不能读写这个区域的数据,也不能直接调用内核中定义的函数,这个区域对应用程序不可见;


5.文件


Linux中一切皆文件,键盘、鼠标、磁盘、显示器,甚至网络这些都可以看成是文件,系统中所有的输入和输出都可以通过读写文件来完成。


50.jpg

                                                     "一切皆文件"


6.参考资料


[1].本文图片来源,侵权必删:https://www.bilibili.com/video/BV1cD4y1D7uR?p=3&spm_id_from=pageDriver

相关文章
|
存储
【计算机组成原理】计算机硬件的基础组成、认识各个硬件部件
计算机组成原理(一) 计算机内部是通过电信号传递数据 电信号:分为高电平和低电平,分别代表1/0
351 0
|
6月前
|
存储
计算机组成原理(8)----专用数据通路
计算机组成原理(8)----专用数据通路
187 1
|
11月前
|
编解码 缓存 芯片
计算机功能扩展卡
计算机功能扩展卡是安装在主板扩展槽中的一些附加功能卡,可以使计算机的应用领域更广阔。这些功能扩展卡主要有声卡、视频采集卡、SATA扩展卡、USB扩展卡等。
139 1
|
11月前
|
前端开发 JavaScript
HTML+CSS+JS实现计算机功能(一)
HTML+CSS+JS实现计算机功能
|
11月前
|
JavaScript
HTML+CSS+JS实现计算机功能(二)
HTML+CSS+JS实现计算机功能
|
存储 BI 芯片
#j计算机组成原理# chapter 3 系统总线(上)
#j计算机组成原理# chapter 3 系统总线
210 1
#j计算机组成原理# chapter 3 系统总线(上)
|
存储 固态存储 数据安全/隐私保护
计算机组成原理/计算机硬件基础第五章:存储器
计算机组成原理/计算机硬件基础第五章:存储器
474 0
计算机组成原理/计算机硬件基础第五章:存储器
|
存储 传感器 缓存
计算机组成原理系列(三):计算机存储器结构体系详解
你是不是经常被以下名词弄得晕头转向。**ROM/RAM/DRAM/SRAM/SDRAM/DDR SDRAM**等等,下面,我尽力以上图为参考,从上到下,说明各个层次存储器的特点和区别,并对它们的工作原理做一些简要的说明
|
存储 Unix 编译器
深入理解计算机系统-第1章计算机系统漫游笔记
计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序。C 语言是系统级编程的首选,同时它也非常实用于应用级程序的编写。
130 0
|
芯片
计算机总线系统简介
计算机总线系统简介
428 0
计算机总线系统简介