![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 83
操作系统的学习笔记
流光亦流连
这个作者很懒,什么都没留下…
展开
-
设备管理部分
一、设备控制器电脑连接的输入,输出设备之间存在着差异,因此,操作系统需要对这些设备进行同一管理的时候,必须要通过一个部件来屏蔽这些设备之间的差异,因此每一个设备都存在一个设备控制器部件,用来处理设备之间的差异,比如硬盘的硬盘控制器,显示器的视频控制器等。从上面这幅图也可看出,跟CPU进行交互的其实是设备的控制器,而不是设备本身。二、寄存器设备控制器中有一个重要的部件——寄存器,寄存器是实现设备与CPU交互的重要部件。CPU通过寄存器来控制设备,要比直接控制设备本身方便得多寄存器的种类原创 2021-12-20 00:14:49 · 758 阅读 · 0 评论 -
文件系统部分(3)
一、硬链接与软链接在上一篇博文中提到过目录在磁盘中是以哈希表的形式存储的,通过文件/目录名取hash值,可以找到文件/目录对应的索引块,进而找到文件/目录对应的数据块。根据这个条件,我们来看硬链接和软链接。硬链接的结构图如下:也就是说对于/home/xiaolin/file,/home/jay/hardlink1,/tmp/hardlink2这三个文件,它们都指向了同一个索引结点,这个索引结点对应的数据块就是这个文件的内容,对于这样的连接,称为硬链接。在删除文件的时候,只有删除所有的原创 2021-12-12 16:26:44 · 395 阅读 · 0 评论 -
文件系统部分(2)
一、多级索引文件存储由于连续存储,链表非连续存储,索引非连续存储均存在着一定的弊端(具体内容可以参考上一篇博文),unix文件系统综合考虑以上各方式的优点和缺点采用了多级索引文件存储的方式。多级索引文件存储的结构图如下:对于小文件,文件头直接记录数据块的位置,对于较大的文件,以三级索引为例,文件头记录一级索引的位置,一级索引中会记录二级索引的位置,二级索引中会记录三级索引的位置,三级索引中记录着数据块的位置。这种方式最大的好处是,可以根据文件的大小灵活地采用不同的存储方式,若文件太.原创 2021-12-12 11:33:02 · 653 阅读 · 0 评论 -
文件系统部分(1)
一、文件系统的基本组成对于每一个文件,操作系统会为其分配两个数据结构——索引结点和目录项,二者的功能如下:- 索引节点,⽤来记录⽂件的元信息,⽐如 inode 编号、⽂件⼤⼩、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是⽂件的唯⼀标识,它们之间⼀⼀对应,也同样都会被存储在硬盘中,所以索引节点同样占⽤磁盘空间。- ⽬录项,⽤来记录⽂件的名字、索引节点指针以及与其他⽬录项的层级关联关系。多个⽬录项关联起来,就会形成⽬录结构,但它与索引节点不同的是,⽬录项是由内核维护的⼀个数据结构,原创 2021-12-12 00:04:06 · 959 阅读 · 0 评论 -
进程与线程——线程部分2
线程的调度算法可分为两大类:1.非抢占式算法。直到一个线程运行结束,才会选择下一个线程进行任务调度。若当前线程没有运行结束,需要等待。2.抢占式算法。一个线程只运行一段时间,如果超出这个时间,不管当前线程有没有运行完,系统都会把它挂起,然后选择另一个线程进行任务调度。近一步细分可分为以下6种:1.先来先服务算法这个算法的逻辑很简单,采用一个队列记录所有的任务,先进入队列的任务将最先被执行。但这种调度方法有一个明显的缺点,设想一个问题,如果一个任务量很大的作业先于好几个任务量.原创 2021-12-06 23:42:22 · 363 阅读 · 0 评论 -
进程与线程——线程部分1
1.线程的概念在早期的操作系统中都是以进程作为独⽴运⾏的基本单位,直到后⾯,计算机科学家们⼜提出了更⼩的能独⽴运⾏的基本单位,也就是线程。2.多线程模型如图所示,对于一个进程的多个线程,每个线程都具有自己独立内存空间,这样在每个线程从进程的共享内存中读取数据后,只能操作自己内存空间中的那一部分数据,这样就不会在多线程操作时产生冲突问题。3.多线程的优点和缺点1)优点:⼀个进程中可以同时存在多个线程;各个线程之间可以并发执⾏;各个线程之间可以共享地址空间和⽂件等资源;2)缺点:原创 2021-12-05 23:35:39 · 607 阅读 · 0 评论 -
进程和线程——进程部分
1.进程和线程的区别举个例子来说把,比如说你现在电脑上打开了QQ,微信,浏览器这三个应用。那么这三个应用,每一个就可以看做是一个进程。线程则可以看做是一个进程内部,有多个执行此程序的程序。而一个进程如果只用一个线程去执行的话,那么效率太低,系统的资源也没法利用。就好像同样是搬东西,两个人搬总比一个人搬要搬的快,这个多人搬东西的过程,就可以类比为多线程。进程是操作系统分配资源的基本单位,线程是操作系统调度的基本单位2.并发和并行的区别这个我认为是比较容易搞混的一点。借用小林图解里面的一副图来说原创 2021-12-05 21:29:15 · 922 阅读 · 0 评论 -
操作系统内存及内存管理方式
一、虚拟内存设想一个场景,如果两个进程都会内存进行写入操作,那么会发生一个问题,进程一在写入完数据后,进程二会将进程一写入的数据给覆盖掉,这是我们非常不愿意看到的,这样会造成程序的崩溃。为了解决这个问题,必须给每个进程分配不同的内存空间来进行操作,这样不同的进程在执行的时候就不会产生冲突了,而实现这一功能就需要引入虚拟内存。即操作系统会为每个进程分配一个虚拟内存,操作系统内部会维护一张表,用于记录虚拟内存和实际内存地址之间的映射。这样进程在执行数据写入的时候,操作系统可以通过虚拟地址和实际内存地原创 2021-11-21 10:11:53 · 2303 阅读 · 1 评论 -
操作系统内核
一、内核的含义内核是计算机的应用程序和外部设备之间的连接桥梁,内核可让应用程序只需要关心如何与内核交互而不用去关心如何与外部设备之间进行交互。二、内核的功能1)管理进程、线程,决定哪个进程、线程使⽤ CPU,也就是进程调度的能⼒;2)管理内存,决定内存的分配和回收,也就是内存管理的能⼒;3)管理硬件设备,为进程与硬件设备之间提供通信能⼒,也就是硬件通信能⼒;4)提供系统调⽤,如果应⽤程序要运⾏更⾼权限运⾏的服务,那么就需要有系统调⽤,它是⽤户程序与 操作系统之间的接⼝。三、内核态原创 2021-11-20 14:43:25 · 1822 阅读 · 0 评论