参考链接:https://www.bilibili.com/video/BV1YE411D7nH?p=2&vd_source=48441c971575b39d0ac4284cbb7b0528

1.1-1操作系统概念 、功能、目标

操作系统概念:

1.负责管理协调硬件、软件等计算机资源的工作
2.为上层的应用程序、用户提供简单易用的服务
3.操作系统是系统软件,而不是硬件
定义:是指控制和管理整个计算机系统的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

补充知识:
进程是一个程序的执行过程。执行前需要将该程序放到内存中,才能被cpu处理。
用qq和朋友视频聊天过程:
step1:在各个文件夹中找到qq安装位置(逐层打开文件夹,找到QQ.exe这个程序的存放位置)
step2:双击打开QQ.exe(需要把该程序相关数据放入到内存)
step3:QQ程序正常运行(对应的进程被处理机(CPU)处理)
step4:开始和朋友视频正常聊天(需要将摄像头设备分配给进程)

作为用户和计算机硬件之间的接口

命令接口:允许用户直接使用
程序接口:允许用户通过程序间接使用
GUI:现代操作系统中最流行的图形用户接口
提示:系统调用=系统调用命令=广义指令

  1. 联机命令接口实例(Windows系统)联机命令接口=交互式命令接口

step1:win+R
step2:输入cmd,按回车,打开命令解释器
step3:尝试使用time指令
输入一条指令,系统执行一条指令。

  1. 脱机命令接口实例(Windows系统) 脱机命令接口=批处理命令接口

使用windows系统的搜索功能,搜索C盘中的*.bat文件,用记事本任意打开一个

  1. 程序接口:如C:\Windows\System32\user32.dll程序员在程序中调用user32.dll(该调用过程即为系统调用)即可实现创建窗口等功能。只能通过用户程序间接使用。

GUI:图形用户界面

用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
例子:在Windows操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。

知识回顾

1.1-2操作系统的特征-并发、并行、共享、虚拟、异步

知识总览

并发

指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观是交替发生的。
常考易混概念–并行:指两个或多个事件发生在同一时刻同时发生。

并行VS并发

eg:假设小渣和老渣每人有两个女朋友。任务1:和一号约会;任务2:和二号约会…

并发特征

操作系统的并发性指计算机系统中同时存在着多个运行着的程序。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但是宏观上是同时执行的)事实上,操作系统就是伴随着“多动道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
当今计算机,一般都是多个CPU,比如Intel的第八代i3处理器就是4核CPU,这意味着同一时刻可以有4个程序并行执行,但是操作系统的并发性依然是必不可少的,当代人使用计算机绝对有4个以上的程序需要同时工作。

共享特征

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
所谓的”同时“往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行柯访问的(即分时共享)
生活实例:
互斥共享方式:使用QQ和微信视频。同一时段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
并发和共享的关系:(互为)
使用QQ发送文件A,同时使用微信发送文件B。
1.两个进程正在并发执行(并发性,如果程序失去并发性,则系统中只有一个程序正在运行,则共享性时区存在的意义)
2.需要共享地访问硬盘资源(共享性,如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发)

虚拟

虚拟是指把一个物理上的实体变为诺干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
举例1:
背景知识:一个程序需要放入内存并给它分配CPU才能执行
GTA5游戏需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内存…
我的电脑:4GB内存
问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以在我电脑上同时运行呢?
答:这是虚拟存储器技术。实际只有4GB的内存,在用户看来狮虎远远大于4GB,使用的是虚拟技术中的“空分复用技术”
举例2:某单核CPU的计算机中,用户打开了QQ、微信、王者、抖音、csdn、QQ音乐等6个软件
问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎有6个CPU在同时为自己服务
。虚拟技术中的“时分扶复用技术”。微观上处理机在各个微小的时间段内交替着为各个进程服务。

异步

在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
示例:老渣要和两个女孩并发约会
一号的指令1:老渣陪我吃饭
一号的指令2:老渣把心给我
二号的指令1:老渣把心给我
二号的指令2:老渣陪我吃饭
约会的情况如下:
与一号、二号指令约会相当于对两个进程的处理,每个进程都有各自需要执行的指令。
老渣的心相当于有限的系统资源。由于可分配的资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进。
显然,如果失去了并发行,则系统只能串行的处理各个进程,每个进程的执行都会一贯执行到底。只有系统拥有并发性,才有可能导致异步性。

知识回顾

1.1-3OS的发展和分类

知识总览

重点理解各阶段的优点和缺点。各阶段的主要优点都是解决了上一阶段的主要缺点。

手工操作阶段

人工操作和纸带的输入输出更不上电脑的速度,导致电脑的CPU处于空闲状态。
缺点:用户独占全机、人机矛盾导致资源利用率极低。

批处理阶段-单道批处理系统

引入脱机输入/输出技术(用磁带完成,比纸带快很多,CPU空闲时间减少),并监督程序(操作系统的雏形)负责控制作业的输入和输出。
主要优点:缓解了一定程度上的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依旧很低。

批处理阶段-多道批处理系统

程序员可以每次往内存中输入多道程序,操作系统正式诞生,并且引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其它资源保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户相应时间长,没有人机交互功能(用户提交自己的作业后就只能等待计算机处理完成,中间不能控制自己的作业执行)
图示比较,为何多道处理系统能大幅提升资源利用率?
假设计算机需要处理三个作业
作业一:输入1秒,计算1秒,输出1秒
作业二:输入1秒,计算1秒,输出1秒
作业三:输入1秒,计算1秒,输出1秒

分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务地紧急性。

实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。

知识回顾

1.1-4操作系统的运行机制和体系结构

知识总览

什么是指令?
简单来说,“指令”就是处理器(CPU)能识别、执行的最基本命令
比如:加法指令就是让CPU进行加法算法
小结:
思考:操作系统中的那些功能应该由内核程序实现呢?
总结:内核时计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。
我们可以将操作系统的体系结构分为大内核和微内核。
类比:
操作系统的体系结构问题与企业的管理问题很相似。
内核就是企业的管理层,负责一些重要的工作。只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接
大内核:企业初创时体量不大,管理层的人会负责大部分的事情。优点是效率高;缺点是组织结构混乱,难以维护。
微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。优点是组织结构清晰,方便维护;缺点是效率低。

知识回顾

1.1-5中断和异常

知识总览

概述:早期计算机运行程序只能串行工作,这会导致资源利用率极低。为了解决这个问题,人们发明了操作系统(作为计算机的管理者),引入了中断机制,实现了多道程序并发执行
本质:发生中断就意味着需要操作系统介入,开展管理工作。
多个程序并发执行,进程一在用户态运行,然后可能受到CPU计时部件发出的中断信号,切换为核心态对中断进行处理。把操作权限交给操作系统,操作系统的内核对中断信号处理,操作系统发现时间片用完,换进程二运行,操作系统开展一系列工作,之后会交换给用户进程。
进程二执行一段时间后,可能发出系统调用(内中断信号),请求输出。CPU切换为核心态,对中断进行处理。
输入输出指令是属于特权指令,不允许用户进程直接使用,普通应用程序,只能通过系统调用方式,内中断方式,来主动要求操作系统进入工作,待其完成相关工作。之后,操作系统按照进程二的请求,要求打印机开始工作,进程二要等待I/O进行完,会等待I/O完成。一系列完成后操作系统会将权限交还给用户进程,进程三开始工作,并且输出设备在操作系统要求下并行工作,当工作结束后会向CPU发出I/O完成信号。CPU收到I/O设备发来的中断信号,切换为核心态对中断进行处理。操作系统的内核会对中断信号进行处理。进程二的i/o操作完成后,让进程二恢复运行,以完成后续工作,接着把CPU操作权限交还给用户态。进程二重新投入运行。
通过以上分析,发现以下特点:
1.当终端发生时,CPU立即进入核心态。
2.当中断发生时,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对于不同的中断信号,会进行不同的处理。
发生了中断就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、范培I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

中断的分类

另一种分类:
外中断处理过程:
step1:执行每个指令后,CPU都要检查当前是否有外部中断信号
step2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器)
step3:根据中断信号类型转入相应的中断处理程序
step4:恢复原进程的CPU环境并推出中断,返回进程继续往下执行

知识回顾

1.1-6系统调用

什么是系统调用,有何作用?

知识点回顾:
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
”系统调用“是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
问题:操作系统为什么要提供“系统调用”功能?
生活场景:你去学校打印店打论文,当你按下“打印”之后,打印机开始工作。你的论文打印到一半时,另外一位同学也按下“打印”按钮开始打印他自己的论文。
最终,你的论文和该同学的论文页面并没有混杂在一起,都是按顺序依次打印的。
思考:如果各个进程可以随意打印,会发生什么情况?
你的论文打印到一半时,另外一个同学按下了“打印”按钮开始打印他自己的论文,结果,你的后半部分论文与该同学混杂在一起。。。。
应用程序通过系统调用请求操作系统的服务。系统中的各个共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源相关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

系统调用与库函数区别

系统调用的背后

知识回顾

让我们一起提前预习,一起学习。

王道考研-操作系统b站学习第一章相关推荐

  1. 【王道考研操作系统】—文件的基本操作

    [王道考研操作系统]-文件的基本操作 一.文件的逻辑结构 按文件是否有结构分为:无结构文件.有结构文件两种. 无结构文件:文件内部的数据就是一系列二进制流或字符流组成.又称流式文件,如Windows操 ...

  2. QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面

    QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面 效果截图: 创建上文件夹Designers,使用Designer设计三个UI界面: First.ui Second.ui T ...

  3. 逻辑学学习:第一章:导论

    逻辑学学习:第一章:导论 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 开始学习逻辑学,教材为<<普通逻辑学>>,作者杨树森, ...

  4. 王道考研——操作系统(第一章 计算机系统概述)

    一.操作系统的概念(定义)功能和目标 操作系统的概念(定义) 操作系统的功能和目标--作为系统资源的管理者 操作系统的功能和目标--向上层提供方便易用的服务 封装思想:操作系统把一些丑陋的硬件功能封装 ...

  5. 王道考研 操作系统知识点汇总(目录+思维导图)

    第一章 计算机系统概述 文章目录 前言 1.1.1 操作系统的概念.功能和目标 思维导图 本节内容 1.1.2操作系统的特征 思维导图 本节内容 1.1.3操作系统的发展与分类 思维导图 本节内容 1 ...

  6. 《浅谈Cache Memory》 学习-第一章

    序 近些年,我在阅读一些和处理器相关的论文与书籍,有很多些体会,留下了若干文字.其中还是有一片领域,我一直不愿意书写,这片领域是处理器系统中的Cache Memory.我最后决定能够写下一段文字,不仅 ...

  7. Intel汇编语言程序设计学习-第一章 基本概念

    第一章基本概念 1.1  简单介绍 本书着重讲述MS-Windows平台上IA-32(Intel Architecture 32bit,英特尔32位体系架构)兼容微处理器的汇编语言程序设计,可以使用I ...

  8. 王道考研数据结构代码总结(前四章)

    目录 线性表 基本操作 顺序表 顺序表的定义 顺序表的插入 顺序表的删除 静态分配顺序表的按位查找 动态分配顺序表的按位查找 动态分配顺序表的按值查找 链表 用代码定义一个单链表 不带头节点的单链表 ...

  9. python爬虫学习第一章

    <!DOCTYPE html> python爬虫第一章 python网络爬虫的学习 什么是网络爬虫 按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫. 网络爬虫算法 当浏览信 ...

最新文章

  1. 云计算或将逐步被认可
  2. Beta阶段第二次冲刺
  3. 用Matplotlib跟踪疫情实时监控2019-nCoV
  4. 洛谷 P1036 选数
  5. Java实现按名称、日期、大小对文件进行排序
  6. java同名类_java两个不同名类 在里面建立两个同名的类 怎么破
  7. Python开发技巧:scrapy-redis爬虫如何发送POST请求
  8. PHP on Windows Azure 入门教学系列(2) ——利用SQL Azure做一个简单的访问计数器...
  9. 基于Wemos D1的感应开盖垃圾桶
  10. 如何判断 .NET Core 应用程序是以管理员身份运行
  11. GAN —— 《Generative Adversarial Nets》
  12. 扩展log4j系列[二]为DailyRollingFileAppender加上maxBackupIndex属性
  13. HTML+CSS学习笔记(3)- 认识标签(2)
  14. CodeBlocks配置openGL教程
  15. 10000个怎么用js写 创建li_JavaScript给每一个li节点绑定点击事件的实现方法
  16. 电脑开机后过一会就关机自动重启
  17. iOS微信分享及Universal Links
  18. 简单的python爬虫--爬取Taobao淘女郎信息
  19. 国丰帮您-采用LDP作为VPLS信令建立PW--VPLS示例
  20. 比尔·盖茨表示 AI应被用来改善教育医疗

热门文章

  1. ==与===的详细区别
  2. python计算狗的年龄_狗狗与人年龄换算表,终于知道狗狗多大了!
  3. DM培训,考试,以后我也是DBA啦~
  4. python 多线程处理图像,充分利用CPU
  5. Android USB驱动源码分析(-)
  6. 电脑触摸板不灵的原因
  7. Shader入门精要读书笔记12
  8. CAX STUDIO 序
  9. TCP socket 一对一编程实例中出现“烫烫烫”的问题
  10. java等腰杨辉三角形