![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统
系统的课程学习
Sherry_wang168
这个作者很懒,什么都没留下…
展开
-
操作系统(12)—— 文件系统、目录、文件别名、分类、虚拟文件系统、数据缓存
一、文件系统不同的操作系统,有不同的文件系统,还可能有多个文件系统。1. 文件系统与文件文件系统:一种用于持久性存储的系统抽象。在存储器上:组织、控制、导航、访问和检索数据大多数计算机系统包含文件系统文件:文件系统中一个单元的相关数据在操作系统中的抽象。2. 文件系统的功能分配文件磁盘空间管理文件块(那一块属于哪一个文件)管理空闲空间(哪一块是空闲的)分配算法...原创 2020-03-30 10:58:24 · 877 阅读 · 0 评论 -
操作系统(11)—— 死锁与进程间通信
一、系统模型1、资源概念资源一旦是被使用状态,则其他的进程就不应该运用这个资源,有互斥性,如果没有互斥性,就不会产生死锁。进程使用资源的有限的,资源恢复到空闲的情况。2. 可重复使用的资源在一个时间只能一个进程使用且不能删除进程获得资源,后来释放有其他进程重用处理器,io通道,主和副存储器,设备和数据结构,如文件,数据库和信号量都可以看作是资源的一种形式如果每个进程拥有一个资...原创 2020-03-30 00:12:48 · 269 阅读 · 0 评论 -
操作系统(10)—— 信号量和管程
一、背景利用信号量和管程解决同步互斥的问题1.并发问题:竞争条件(竞态条件)多程序并发存在大的问题2.同步线程共享公共数据的协调条件包括互斥与条件同步互斥:在同一时间只有一个线程可以执行临界区3.解决同步问题正确比较难需要高层次的编程抽象(如:锁)从底层硬件支持编译二、信号量1. 抽象数据类型1)一个整形(sem),两个原子操作2)p() 操作:sem减一...原创 2020-03-29 21:24:53 · 207 阅读 · 0 评论 -
操作系统(9)—— 同步
一、背景独立的线程不和其他线程共享资源或状态确定性:输入状态决定结果可重现:能够重现起始条件,I/O调度顺序不重要合作线程在多个线程中共享状态不确定性不可重现不确定性和不可重现意味着bug可能是间歇性发生的。进程/线程:计算机/设备需要合作优点:共享资源、加速、模块化。无论多个线程的指令序列怎样交替执行,程序都必须正常工作多线程程序具有不确定性和不可重现的...原创 2020-03-29 21:23:48 · 326 阅读 · 0 评论 -
操作系统(8)—— CPU调度(调度原则、调度算法、实时调度、多处理器调度与优先级反转)
一、背景知识1. 上下文切换:切换CPU的当前任务,从一个进程/线程转换到另一个进程/线程;但是切换之前要保护现场,保存当前进程/线程在PCB/TCP中的执行上下文(也就是CPU的状态);切换任务,当然要读取下一个进程/线程的上下文。2. CPU调度:从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个进程/线程;需要调度程序(挑选进程/线程的内核函数);需要考虑的问题是...原创 2020-03-25 20:18:16 · 2915 阅读 · 0 评论 -
操作系统(7)—— 上下文切换、进程的控制(创建、加载、执行、等待和结束)
一、上下文切换停止当前运行进程/线程(从运行状态改变为其他状态)并且调度其他进程/线程(转变为运行状态)。必须在切换前后存储许多部分的进程上下文必须能够在之后恢复它们,所以进程不能显示它曾经被暂停过。必须快速(上下文切换非常频繁)需要存储上下文?寄存器(PC,SP,…)、CPU状态 …一些时候可能会费时,所以我们应该尽可能避免。操作系统为活跃进程准备了进程控制块(PCB),...原创 2020-03-25 10:58:05 · 261 阅读 · 0 评论 -
操作系统(6)—— 线程(Thread)
一、为什么使用线程单进程的问题:各个函数之间不是并发执行,影响资源的使用效率。多进程的问题:进程之间如何通信,共享数据?另外,维护进程的系统开销比较大。创建进程时,分配资源,建立PCB;撤销进程时,回收资源,撤销PCB;进程切换时,保存当前进程的状态信息。解决方法需要提出一种新的实体,满足以下特性:实体之间可以并发的执行;实体之间可以共享相同的地址空间。二、什么是线程1. 线...原创 2020-03-24 22:25:49 · 616 阅读 · 0 评论 -
操作系统(5)—— 进程和进程状态模型
一、进程的定义和组成进程(process):一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。组成程序的代码程序处理的数据程序计数器中的值,指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)总之,一个进程包含了正在运行的一个程序的所有状态信息。二、进程与程序的联系和区别联系程序是产生进程的基础程序的每次运行构成不同的进程...原创 2020-03-24 10:27:52 · 575 阅读 · 0 评论 -
操作系统(4)—— 局部/ 全局页面置换算法
局部页替换算法一、最优页面置换算法功能目标功能:当缺页中断发生,需要调入新的页面。内存已满时,选择内存当中哪个物理页面被置换。目标:尽可能的减少页面的换进换出次数,即缺页中断的次数。具体来说,把未来不再使用或者短期内较少使用的页面换出,通常只能在局部性原理指导下依据过去的统计数据来进行预测。页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间...原创 2020-03-18 15:57:25 · 3575 阅读 · 0 评论 -
操作系统(3)—— 覆盖、交换技术和虚存技术
操作系统(3)—— 虚拟内存本节要学习的知识点如下:虚拟内存的起因覆盖技术交换技术虚存技术一. 虚拟内存的起因程序规模的增长速度远远大于存储器容量的增长速度理想中的存储器 :更大、更快、更便宜、非易失性。常用的数据程序放在CPU中便于访问,不常用的放在内存、硬盘中。早期DOS——内存不够用的情况及解决方法程序太大,超过内存容量,可以采用手动的覆盖技术,只把需要的指令和...原创 2020-03-11 16:01:29 · 855 阅读 · 0 评论 -
操作系统(2) —— 物理内存(连续非连续)的管理
操作系统(2) —— 物理内存(连续/非连续)的管理一. 计算机体系结构基本硬件结构:CPU、内存、外设(O/I)。内存的层次结构:CPU(访问寄存器和cache,速度较快),内存(主存/物理内存,容量很大,速度较慢)。OS完成的目标:抽象:访问连续的地址空间,即逻辑地址空间保护:独立的地址空间共享:访问相同内存虚拟化:更多的地址空间,暂时不用的数据放入硬盘(虚拟内存)在...原创 2020-03-10 16:03:10 · 235 阅读 · 0 评论 -
操作系统(1)—— 基本概念、系统调用、异常和中断
什么是操作系统用户角度上,操作系统是一个系统软件管理应用程序为应用程序提供服务杀死应用程序资源管理管理外设,分配资源操作系统架层次结构硬件之上,应用程序之下应用软件:办公软件、视频播放软件操作系统位于应用程序之下,为应用软件提供服务支撑Linux、Windows、Android的界面属于外壳(Shell) ,而不是内核(Kernel) 。Kernel是研究重点,...原创 2020-03-07 11:22:25 · 395 阅读 · 0 评论 -
Linux基础(7) —— 文件系统操作与磁盘管理
一、基本操作查看磁盘和目录的容量使用 df 命令查看磁盘的容量$ df物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),你如果主机上有多块硬盘则可能还会出现 /dev/sdb,/dev/sdc 这些磁盘设备都会在 /dev 目录下以文件的存在形式。接着你还会看到"1k-块"这个陌生的东西,它表示以磁...原创 2020-03-06 22:06:51 · 295 阅读 · 0 评论 -
Linux基础(6) —— 文件打包和解压缩
在讲 Linux 上的压缩工具之前,有必要先了解一下常见常用的压缩包文件格式。在 Windows 上最常见的不外乎这两种 *.zip,*.7z 后缀的压缩文件。而在 Linux 上面常见的格式除了以上两种外,还有 .rar,*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*.tar.bz2,简单介绍如下:文件后缀名说明*.zipzip 程序打...原创 2020-03-05 22:24:56 · 180 阅读 · 0 评论 -
Linux基础(5)—— 搜索文件
Linux基础(5)—— 搜索文件与搜索相关的命令常用的有 whereis,which,find 和 locate 。whereis 简单快速$ whereis who$ whereis findwhereis find 找到了三个路径,两个可执行文件路径和一个 man 在线帮助文件所在路径,这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。whereis 只能搜...原创 2020-03-04 20:25:31 · 90 阅读 · 0 评论 -
Linux基础(4)—— 环境变量
变量变量是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值并赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型。Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可以参与...原创 2020-03-04 16:12:01 · 272 阅读 · 0 评论 -
Linux基础(3)—— 目录结构及文件基本操作
Linux 目录结构在讲 Linux 目录结构之前,你首先要清楚一点,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的。一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上Windows 以存储介质为主,主要以盘符(C 盘,D 盘…)及分区来实现文件管理,然后之下才是目录,目录就显得不是那么...原创 2020-02-29 22:11:37 · 270 阅读 · 0 评论 -
Linux基础(2)—— Linux用户及文件权限管理
Linux用户管理Linux 是一个可以实现多用户登录的操作系统,他们共享一些主机的资源,但也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。下面我们就来学习一下 Linux 下的账户管理的基础知识。1. 查看用户打开终端,输入命令...原创 2020-02-27 16:15:05 · 176 阅读 · 0 评论 -
Linux基础(1)—— Linux基本概念及操作
Linux为何物Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Mac OS 。这里简单介绍一下操作系统在整个计算机系统中的角色。Linux 主要是系统调用和内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。Linux的历史操作系统始于二十世纪五十年代,当时的操作系统能运行批处理程序。批处...原创 2020-02-26 19:32:02 · 334 阅读 · 0 评论