深入理解计算机系统 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章计算机系统漫游笔记
计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序。C 语言是系统级编程的首选,同时它也非常实用于应用级程序的编写。
140 0
《深入理解计算机系统》读书笔记--计算机系统漫游
信息 = 位 + 上下文 1)文本文件&二进制文件:只由ASCII构成的文件称为文本文件,其它非文本文件称为二进制文件;2)信息表示的基本思想:系统中所有的信息(包括:磁盘文件、存储器中的程序和用户数据、网络上传送的数据等)都是由一串位表示的。
2068 0
【好书解读】深入理解计算机系统 (CSAPP) 第 1 章计算机系统漫游
解读《深入理解计算机系统(CSAPP)》第 1 章计算机系统漫游,介绍计算机系统硬件组成,文中末尾有计算机系统体系架构图
【好书解读】深入理解计算机系统 (CSAPP) 第 1 章计算机系统漫游
深入理解计算机系统之旅(一)计算机系统漫游
1、计算机系统是什么? 我们直观的可以看到的计算机系统就是一台电脑,包括主机、显示器、键盘鼠标,然后显示器上会显示不同界面,用鼠标点击,键盘输入界面就会相应操作。
1056 0
#j计算机组成原理# chapter 3 系统总线(中)
#j计算机组成原理# chapter 3 系统总线
174 0
#j计算机组成原理# chapter 3 系统总线(中)
#j计算机组成原理# chapter 3 系统总线(下)
#j计算机组成原理# chapter 3 系统总线
176 0
#j计算机组成原理# chapter 3 系统总线(下)
【计算机系统】基本硬件科普
【计算机系统】基本硬件科普
238 0

热门文章

最新文章