当前课程知识点:操作系统 >  第一讲 操作系统概述 >  1.3 什么是操作系统 >  Video

返回《操作系统》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《操作系统》慕课在线视频列表

Video课程教案、知识点、字幕

现在我们来继续讲

什么是操作系统

大家想象操作系统是什么样的

它是一个程序

它和其它程序是什么样的关系

然后它有些什么样的组成

它有些什么样的特征

我们首先来看什么是操作系统

操作系统实际上

没有一个明确的定义

它哪些功能算是操作系统里的

那些功能是应用软件或者说硬件的

实际上随着操作系统的发展

操作系统内涵实际上是在不断变化的

我们现在给操作系统是给出一个解释

有一种解释说

操作系统是一个控制程序

它是一个系统软件

它给用户提供一个运行的环境

用户使用计算机系统的时候

提供所需要的服务

如果说用户的使用不当

那么这个时候

它需要进行项目的一些错误处理

如果说用户在使用过程中

我是不是能给它一些协助

比如说你在输某一条命令的时候

输了半截你忘掉了 后面是什么内容

这个时候它是不是能给出一些提示

这是我们第一个理解

第二个理解操作系统

它是一个资源管理器

实际上就是说我们计算机硬件

和应用程序之间

用操作系统来作为它的一个中间层

它为计算机应用程序来管理

所有的计算机软硬件资源

以协调于各个应用程序

在使用这些资源的时候

能够友好地使用下去

那么具体说起来就是

如果说所有的资源都是由我专用的

那么这个时候我的使用肯定会没问题

但是如果说多个应用程序交替着来使用

那么这个时候这资源

如何使用就会有一些问题了

比如说像内存 你在用我也在用

这个时候我到底

两个应用它们之间各分配多少呢

有可能给你分配多了 给它分配少了

而你的需要又跟分配的结果不一致

那这个时候对操作系统来说

我就需要做一个高效的判断

来使得我们在这里

能够按照应用程序的需要

给它分配合理的资源

这是我们操作系统提供的高效使用

所要达到的目标

然后第二个是说

我们可能都需要很多的资源

这个时候操作系统

要负责解决这种需求上的差异

实现它的公平

操作系统表现形式

可能会有多种多样

比如说我们windows我们的Linux

它的表现是完全不一样的

但是从操作系统内部结构上来讲

它基本上可以分成这样几个部分

说操作系统在中间 下面是硬件

上面是应用

应用我们就可以把它

分成系统应用和应用程序

这两个部分对于我们来讲

我们学操作系统的人

就是要来做操作系统

那么你是在硬件基础上做操作系统

这属于系统设计者

如果说你是写应用程序的人

或者写系统应用的人

这个时候我利用操作系统的功能

给出应用程序和系统应用

如果说你是一个应用程序的使用者

这个时候你直接使用的应用程序

但是即使这样的话你理解操作系统

也有利于你更好地使用计算机系统

操作系统实际上就是

在硬件进行一层隔离

对上面的应用

提供我们通常所见到的逻辑这些资源

比如说进程 文件 地址空间

这都是在操作系统之后

给用户程序看到的情况

操作系统是一个软件

在我们软件划分当中

这是我们操作系统

实际上我们可以把软件分成

应用软件和系统软件

系统软件我们又可以

把它分成系统应用和操作系统

而在操作系统里面

核心的内容是我们的内核

而这里的命令行

由于它和操作系统内核关系非常密切

我们把它划在这里头

实际上有时候也会

把它认为系统软件的一个组成部分

我们在操作系统里

到底有一些什么样的组成

首先说我们有内核

实现我们刚才所说到的

资源的管理功能

操作系统之上用户要使用

实际上我们在这提供了两种命令接口

一个是命令行接口

这个时候用户需要去敲键盘输命令

另一种是图形用户接口GUI

这个时候实际上我们是把命令

转换成我们图形用户接口的

一些基本读数

比如说在这里的窗口 图标 菜单和指针

有了这些之后

我去看文件系统的文件的图标

那我就对应着某一个文件

这样的话方便用户来使用

这个时候我们能达到一种效果

是所见即所得

操作系统和外界的关系

实际上我们在这个图可以很直观表现出来

操作系统是我们

整个计算机系统里的核心软件

然后在外面构造我们的

提供对外接口和一些应用

用户就可以来使用

系统所提供的服务了

这是我们用户所在的位置

对于我们这学期课来讲

我们的ucore小操作系统

它在提供一些什么 我们从下往上

中间两个黄色的部分

是我们操作系统的内容

下面是硬件 我们写了几种

我们在ucore实验里头会

涉及到的硬件 串口 磁盘和存储

我在这有一个硬件抽象层

硬件抽象层把底下这些做一个屏蔽

提供一个标准的接口

然后在这里实现我们操作系统功能

操作系统功能是各种各样的驱动

串口驱动 磁盘驱动 物理内存的管理

操作系统内核提供的服务

比如说我们的信号

这样的话

我们在执行一个程序过程当中

我就可以强行让它停下来按Ctrl-C

然后我们可以提供文件系统

这个时候我就可以把大量的数据

以人比较好理解的形式组织起来

然后我们在里面提供虚拟存储

提供虚拟存储以后我们用户

就可以使用到

大于物理内存的储存空间

然后我们在这里提供处理机调度

这个时候我们就可以在一台机器上

让多个应用程序交替运行

提供这些服务

都封装在系统调用接口之上

通过系统调用接口 上层应用

系统库 编译器 解释器

和我们命令行应用

这都是提供的系统应用

然后我们写的应用程序是

在这上面利用系统调用和库

提供的功能

来实现我们应用的功能

操作系统软件和

其它课程里面说到应用程序

它也是一个软件

这两者之间有什么样的差别

也就是操作系统内核

它有一些什么样的特征

这里列出来的是

操作系统所具有四个特征

并发 共享 虚拟和异步

并发是指说我们在操作系统当中

有多个正在运行的应用程序

那么它需要操作系统管理和调度

具体什么意思

就是我们如果多个应用程序交替运行

我需要知道当前每一个应用

都执行到什么位置

当前正在执行的是哪个应用

如果说应用之间有切换的时候

那切换到下一个应用的时候

它上次执行到什么位置

那这次我从什么地方开始

当时的状态是什么样子

那我在这都用操作系统来维护

第二个特征是共享

共享是指说我们多个应用

并发运行的时候

宏观上要体现出

它们同时在访问资源的情况

微观上要实现它们的互斥访问

比如说我们说到的内存

两个应用同时访问内存

这个时候我每个应用

需要知道它访问是哪个

另一个应用访问的是哪个

它们两之间不能访问错了

我需要保护的这些内存资源

不能让另外一个应用去访问

而在微观上 这个时候

我需要对它做很好的隔离

我们知道在数据总线上任何一个时刻

只有一个应用去访问存储单元

这就是我们所说的微观上的互斥

然后再一个是虚拟

也就是说我要通过交替运行

使每一个用户感觉到

整个计算机都是

由它一个用户在专门提供服务

如何做到这点实际上就是由操作系统

在每个应用执行的时候这种交替

由于交替的频率非常高

让用户在用的时候感觉不太出来

这台机器还有其它用户在用

当然我们这里负载大到一定程度

用户是可以感觉到的

再有一个是异步 异步是指说

由于我们程序是走走停停的

这种走走停停

它的行为是不是可预测的

在这里实际上

我们需要由操作系统来提供

只要用户的输入是一致的

那么这个时候它的输出结果

就应该是不变的

当然如果说你的那个应用

就是需要知道跟时间相关的

这种走走停停的信息

我们也是可以在操作系统支持之下

能够发现时间上的差异

这就是我们在这里说到的

操作系统的特征

操作系统课程列表:

第零讲 在线教学环境准备

-0.1 Piazza讨论区

--piazza访问和使用

--html

-0.2 在线实验平台

--实验平台使用帮助

--平台使用帮助

--Gitlab使用帮助

--IBM内部账号初始化

-0.2在线实验平台

--Raw HTML

第一讲 操作系统概述

-1.1 课程概述

--视频

-第一讲 操作系统概述--练习

-1.2 教学安排

--视频

-1.3 什么是操作系统

--Video

-1.4 为什么学习操作系统,如何学习操作系统

--Video

-1.5 操作系统实例

--视频

-1.6 操作系统的演变

--视频

-1.7 操作系统结构

--视频

第二讲 实验零 操作系统实验环境准备

-2.1 前言和国内外现状

--2.1 前言和国内外现状

-2.2 OS实验目标

--2.2 OS实验目标

-2.3 8个OS实验概述

--2.3 8个OS实验概述

-2.4 实验环境搭建

--2.4 实验环境搭建

-2.5 x86-32硬件介绍

--2.5 x86-32硬件介绍

-2.6 ucore部分编程技巧

--2.6 ucore部分编程技巧

-2.7 演示实验操作过程

--2.7 演示实验操作过程

--Q6

--Q7

--Q10

第三讲 启动、中断、异常和系统调用

-3.1 BIOS

--3.1 BIOS

-3.2 系统启动流程

--3.2 系统启动流程

-3.3 中断、异常和系统调用比较

--3.3 中断、异常和系统调用比较

-第三讲 启动、中断、异常和系统调用--3.3 中断、异常和系统调用比较

-3.4 系统调用

--3.4 系统调用

-第三讲 启动、中断、异常和系统调用--3.4 系统调用

-3.5 系统调用示例

--3.5 系统调用示例

-3.6 ucore+系统调用代码

--3.6 ucore+系统调用代码

第四讲 实验一 bootloader启动ucore os

-4.1 启动顺序

--4.1 启动顺序

-4.2 C函数调用的实现

--4.2 C函数调用的实现

-4.3 GCC内联汇编

--4.3 GCC内联汇编

-4.4 x86中断处理过程

--4.4 x86中断处理过程

-4.5 练习一

--4.5 练习一

-4.6 练习二

--4.6 练习二

-4.7 练习三

--4.7 练习三

-4.8 练习四 练习五

--4.8 练习四练习五

-4.9 练习六

--4.9 练习六

第五讲 物理内存管理: 连续内存分配

-5.1 计算机体系结构和内存层次

--5.1 计算机体系结构和内存层次

-5.2 地址空间和地址生成

--5.2 地址空间和地址生成

-5.3 连续内存分配

--5.3 连续内存分配

-5.4 碎片整理

--5.4 碎片整理

-5.5 伙伴系统

--5.5 伙伴系统

-第五讲 物理内存管理: 连续内存分配--5.6 练习

第六讲 物理内存管理: 非连续内存分配

-6.1 非连续内存分配的需求背景

--6.1 非连续内存分配的需求背景

-6.2 段式存储管理

-- 6.2 段式存储管理

-6.3 页式存储管理

--6.3 页式存储管理

-6.4 页表概述

--6.4 页表概述

-6.5 快表和多级页表

--6.5 快表和多级页表

-6.6 反置页表

--6.6 反置页表

-6.7 段页式存储管理

--6.7 段页式存储管理

-第六讲 物理内存管理: 非连续内存分配--6.8 练习

第七讲 实验二 物理内存管理

-7.1 了解x86保护模式中的特权级

--7.1 了解x86保护模式中的特权级

-第七讲 实验二 物理内存管理--7.1 了解x86保护模式中的特权级

-7.2 了解特权级切换过程

--7.2 了解特权级切换过程

-第七讲 实验二 物理内存管理--7.2 了解特权级切换过程

-7.3 了解段/页表

--7.3 了解段/页表

-第七讲 实验二 物理内存管理--7.3 了解段/页表

-7.4 了解UCORE建立段/页表

--7.4 了解ucore建立段/页表

-第七讲 实验二 物理内存管理--7.4 了解UCORE建立段/页表

-7.5 演示lab2实验环节

--7.5 演示lab2实验环节

第八讲 虚拟存储概念

-8.1 虚拟存储的需求背景

--8.1 虚拟存储的需求背景

-8.2 覆盖和交换

--8.2 覆盖和交换

-8.3 局部性原理

--8.3 局部性原理

-8.4 虚拟存储概念

--8.4 虚拟存储概念

-8.5 虚拟页式存储

--8.5 虚拟页式存储

-8.6 缺页异常

--8.6 缺页异常

第九讲 页面置换算法

-9.1 页面置换算法的概念

--9.1 页面置换算法的概念

-9.2 最优算法、先进先出算法和最近最久未使用算法

--9.2 最优算法、先进先出算法和最近最久未使用算法

-第九讲 页面置换算法--9.2 最优算法、先进先出算法和最近最久未使用算法

-9.3 时钟置换算法和最不常用算法

--9.3 时钟置换算法和最不常用算法

-第九讲 页面置换算法--9.3 时钟置换算法和最不常用算法

-9.4 Belady现象和局部置换算法比较

--9.4 Belady现象和局部置换算法比较

-第九讲 页面置换算法--9.4 Belady现象和局部置换算法比较

-9.5 工作集置换算法

--9.5 工作集置换算法

-第九讲 页面置换算法--9.5 工作集置换算法

-9.6 缺页率置换算法

--9.6 缺页率置换算法

-第九讲 页面置换算法--9.6 缺页率置换算法

-9.7 抖动和负载控制

--9.7 抖动和负载控制

第十讲 实验三 虚拟内存管理

-10.1 实验目标:虚存管理

--10.1 实验目标:虚存管理

-第十讲 实验三 虚拟内存管理--10.1 实验目标:虚存管理

-10.2 回顾历史和了解当下

-- 10.2 回顾历史和了解当下

-第十讲 实验三 虚拟内存管理--10.2 回顾历史和了解当下

-10.3 处理流程、关键数据结构和功能

--10.3 处理流程、关键数据结构和功能

-第十讲 实验三 虚拟内存管理--10.3 处理流程、关键数据结构和功能

-10.4 页访问异常

--10.4 页访问异常

-第十讲 实验三 虚拟内存管理--10.4 页访问异常

-10.5 页换入换出机制

--10.5 页换入换出机制

-第十讲 实验三 虚拟内存管理--10.5 页换入换出机制

第十一讲 进程和线程

-11.1 进程的概念

--11.1 进程的概念

-第十一讲 进程和线程--11.1 进程的概念

-11.2 进程控制块

--11.2 进程控制块

-第十一讲 进程和线程--11.2 进程控制块

-11.3 进程状态

--11.3 进程状态

-第十一讲 进程和线程--11.3 进程状态

-11.4 三状态进程模型

--11.4 三状态进程模型

-11.5 挂起进程模型

--11.5 挂起进程模型

-第十一讲 进程和线程--11.5 挂起进程模型

-11.6 线程的概念

--11.6 线程的概念

-第十一讲 进程和线程--11.6 线程的概念

-11.7 用户线程

--11.7 用户线程

-第十一讲 进程和线程--11.7 用户线程

-11.8 内核线程

--11.8 内核线程

-第十一讲 进程和线程--11.8 内核线程

第十二讲 进程控制

-12.1 进程切换

--12.1 进程切换

-第十二讲 进程控制--12.1 进程切换

-12.2 进程创建

--12.2 进程创建

-第十二讲 进程控制--12.2 进程创建

-12.3 进程加载

--12.3 进程加载

-第十二讲 进程控制--12.3 进程加载

-12.4 进程等待与退出

--12.4 进程等待与退出

-第十二讲 进程控制--12.4 进程等待与退出

第十三讲 实验四 内核线程管理

-13.1 总体介绍

--13.1 总体介绍

-13.2 关键数据结构

--13.2 关键数据结构

-13.3 执行流程

--13.3 执行流程

-13.4 实际操作

--13.4 实际操作

第十四讲 实验五 用户进程管理

-14.1 总体介绍

--14.1 总体介绍

-14.2 进程的内存布局

--14.2 进程的内存布局

-14.3 执行ELF格式的二进制代码-do_execve的实现

--14.3 执行ELF格式的二进制代码-do_execve的实现

-14.4 执行ELF格式的二进制代码-load_icode的实现

--14.4 执行ELF格式的二进制代码-load_icode的实现

-14.5 进程复制

--14.5 进程复制

-14.6 内存管理的copy-on-write机制

--14.6 内存管理的copy-on-write机制

第十五讲 处理机调度

-15.1 处理机调度概念

--15.1 处理机调度概念

-第十五讲 处理机调度--15.1 处理机调度概念

-15.2 调度准则

--15.2 调度准则

-15.3 先来先服务、短进程优先和最高响应比优先调度算法

--15.3 先来先服务、短进程优先和最高响应比优先调度算法

-第十五讲 处理机调度--15.3 先来先服务、短进程优先和最高响应比优先调度算法

-15.4 时间片轮转、多级反馈队列、公平共享调度算法和ucore调度框架

--15.4 时间片轮转、多级反馈队列、公平共享调度算法和ucore调度框架

-第十五讲 处理机调度--15.4 时间片轮转、多级反馈队列、公平共享调度算法和uc

-15.5 实时调度和多处理器调度

--15.5 实时调度和多处理器调度

-第十五讲 处理机调度--15.5 实时调度和多处理器调度

-15.6 优先级反置

--15.6 优先级反置

-第十五讲 处理机调度--15.6 优先级反置

第十六讲 实验六 调度器

-16.1 总体介绍和调度过程

--16.1 总体介绍和调度过程

-16.2 调度算法支撑框架

--16.2 调度算法支撑框架

-16.3 时间片轮转调度算法

--16.3 时间片轮转调度算法

-16.4 Stride调度算法

--16.4 Stride调度算法

第十七讲 同步互斥

-17.1 背景

--17.1 背景

-17.2 现实生活中的同步问题

--17.2 现实生活中的同步问题

-第十七讲 同步互斥--17.2 现实生活中的同步问题

-17.3 临界区和禁用硬件中断同步方法

--17.3 临界区和禁用硬件中断同步方法

-第十七讲 同步互斥--17.3 临界区和禁用硬件中断同步方法

-17.4 基于软件的同步方法

--17.4 基于软件的同步方法

-第十七讲 同步互斥--17.4 基于软件的同步方法

-17.5 高级抽象的同步方法

--17.5 高级抽象的同步方法

-第十七讲 同步互斥--17.5 高级抽象的同步方法

第十八讲 信号量与管程

-18.1 信号量

--18.1 信号量

-第十八讲 信号量与管程--18.1 信号量

-18.2 信号量使用

--18.2 信号量使用

-第十八讲 信号量与管程--18.2 信号量使用

-18.3 管程

--18.3 管程

-第十八讲 信号量与管程--18.3 管程

-18.4 哲学家就餐问题

--18.4 哲学家就餐问题

-18.5 读者-写者问题

--18.5 读者-写者问题

第十九讲 实验七 同步互斥

-19.1 总体介绍

--19.1 总体介绍

-19.2 底层支撑

--19.2 底层支撑

-第十九讲 实验七 同步互斥--19.2 底层支撑

-19.3 信号量设计实现

--19.3 信号量设计实现

-第十九讲 实验七 同步互斥--19.3 信号量设计实现

-19.4 管程和条件变量设计实现

--19.4 管程和条件变量设计实现

-第十九讲 实验七 同步互斥--19.4 管程和条件变量设计实现

-19.5 哲学家就餐问题

--19.5 哲学家就餐问题

第二十讲 死锁和进程通信

-20.1 死锁概念

--20.1 死锁概念

-第二十讲 死锁和进程通信--20.1 死锁概念

-20.2 死锁处理方法

--20.2 死锁处理方法

-第二十讲 死锁和进程通信--20.2 死锁处理方法

-20.3 银行家算法

--20.3 银行家算法

-第二十讲 死锁和进程通信--20.3 银行家算法

-20.4 死锁检测

--20.4 死锁检测

-第二十讲 死锁和进程通信--20.4 死锁检测

-20.5 进程通信概念

--20.5 进程通信概念

-第二十讲 死锁和进程通信--20.5 进程通信概念

-20.6 信号和管道

--20.6 信号和管道

-第二十讲 死锁和进程通信--20.6 信号和管道

-20.7 消息队列和共享内存

--20.7 消息队列和共享内存

-第二十讲 死锁和进程通信--20.7 消息队列和共享内存

第二十一讲 文件系统

-21.1 文件系统和文件

--21.1 文件系统和文件

-第二十一讲 文件系统--21.1 文件系统和文件

-21.2 文件描述符

--21.2 文件描述符

-第二十一讲 文件系统--21.2 文件描述符

-21.3 目录、文件别名和文件系统种类

--21.3 目录、文件别名和文件系统种类

-第二十一讲 文件系统--21.3 目录、文件别名和文件系统种类

-21.4 虚拟文件系统

--21.4 虚拟文件系统

-第二十一讲 文件系统--21.4 虚拟文件系统

-21.5 文件缓存和打开文件

--21.5 文件缓存和打开文件

-第二十一讲 文件系统--21.5 文件缓存和打开文件

-21.6 文件分配

--21.6 文件分配

-第二十一讲 文件系统--21.6 文件分配

-21.7 空闲空间管理和冗余磁盘阵列RAID

--21.7 空闲空间管理和冗余磁盘阵列RAID

-第二十一讲 文件系统--21.7 空闲空间管理和冗余磁盘阵列RAID

第二十二讲 实验八 文件系统

-22.1 总体介绍

--22.1 总体介绍

-第二十二讲 实验八 文件系统--22.1 总体介绍

-22.2 ucore 文件系统架构

--22.2 ucore 文件系统架构

-第二十二讲 实验八 文件系统--22.2 ucore 文件系统架构

-22.3 Simple File System分析

--22.3 Simple File System分析

-第二十二讲 实验八 文件系统--22.3 Simple File System分析

-22.4 Virtual File System分析

--22.4 Virtual File System分析

-第二十二讲 实验八 文件系统--22.4 Virtual File System分

-22.5 I/O设备接口分析

--22.5 I/O设备接口分析

-第二十二讲 实验八 文件系统--22.5 I/O设备接口分析

-22.6 执行流程分析

--22.6 执行流程分析

第二十三讲 I/O子系统

-23.1 I/O特点

--视频

-第二十三讲 I/O子系统--23.1 I/O特点

-23.2 I/O结构

--816C80A0F5E3B8809C33DC5901307461

-第二十三讲 I/O子系统--23.2 I/O结构

-23.3 I/O数据传输

--C58221E14388B9DB9C33DC5901307461

-第二十三讲 I/O子系统--23.3 I/O数据传输

-23.4 磁盘调度

--567A3F1FCBFB3F4C9C33DC5901307461

-第二十三讲 I/O子系统--23.4 磁盘调度

-23.5 磁盘缓存

--C327536B80D25CE79C33DC5901307461

-第二十三讲 I/O子系统--23.5 磁盘缓存

html

-html

--html

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。