考研408《操作系统》复习笔记,第一章《概述》

一、是啥玩意?

计算机操作系统就是:

  • 操控、管理整个计算机软件和硬件的资源、并合理分配计算机工作、资源

(人话):操作系统是计算机系统资源的管理者

  • 以给用户和其他软件提供更方便的接口和环境

(人话):它为上层提供服务

  • 它是计算机系统中最基础的系统软件

(人话):是软件,是最接近底层硬件的一套软件

1)对于第一句话:【操控、管理整个计算机软件和硬件的资源,是计算机系统资源的管理者】的理解:

2)第二句话:【它为上层提供服务】

用户和软件无需关心底层硬件所要的0、1这些二进制代码,操作系统为用户操作软件提供了更有友好的"接口",相当于中间商


这里注意,常见的三大类接口:【GUI】【命令接口】【程序接口】

(注意:【命令接口】和【程序接口】统称为用户接口

其中【GUI】就是搭建常用的图形化操作,点一下图标打开啊、右键删除、新建等等......

例子:

命令接口 】又分【联机命令接口 】和【脱机命令接口

联机命令接口】就是大家常用的【Window + R】这种打开"黑窗口"输入命令来执行的操作,一般普通用户比较蠢就只会鼠标点点点,程序员一般用得多一点,跟执行的命令跟鼠标点点点的效果是一样的

特点就是:命令一条一条的执行

例子:

脱机命令接口】就是将大批大批的命令通过.bat文件执行,其实我也不太懂毕竟我是没试过这么干

特点就是:命令可以一堆一堆的执行

例子:

程序接口 】就记住【普通用户】不能直接用就行了,程序员也只能通过代码调用程序,然后程序调用【程序接口】执行命令

例子:

3)第三句话:【是最接近底层硬件的一套软件】

二、操作系统的特征

前提知识点: 这里需要知道的一个知识点后面可能会方便各位理解---------程序是在内存中运行的

(这就是为什么当你的内存不够大时,运行多个程序会卡,而且一个程序运行下去可能要生成更多的临时数据资源,占用更多内存,导致电脑更卡)

1、总的4大特征:

(其中【并发】和【共享】是最基本的特征,二者互为存在条件)

2、并发

并发是指:两个或多个事件在同一时间间隔内同时发生

注意:这个【同时】是宏观上 的同时,微观上 是交替发生的,怎么解释呢?

那就要区分一下【并发】和【并行】两个概念

【并发】两个或多个事件在同一时间间隔内同时发生,也就是同时跟个千手观音一样干着N份活

【并行】是两个或多个事件在同一时刻同时发生,虽然是要一次性干这么多活,但是也得稍微有个前后顺序,在微观层面的某一小时刻还是只能执行一件事

用两渣男约会来比喻:

而【操作系统的并发性】就是【计算机中同时运行多个程序】(宏观同时,微观交替)

操作系统和程序并发是同时诞生的

3、共享

共享就是计算机的资源共享,系统中的资源可供内存中多个并发进程使用

(这里资源不仅仅指内存数据,还有什么音响啊、摄像头...等等都可以算资源)

这种 "同时" 跟并发一样,也是 "宏观上" 同时,**"微观上"**分时共享

其中也细分为【互斥共享 】和【同时共享】两种共享方式

互斥共享

就是比如qq、微信同时要视频通话,那摄像头资源就只能给一个应用使用;网易云跟qq音乐同时要放歌,那音频播放器只能给一个应用使用。

同时共享

就是比如qq跟微信跟短信都可以同一时间给别人发送文件、照片......看似是同时进行的,但其实 "微观层面" 上其实是分时交替着读取内存资源

【并发】和【共享】是相互依存的

4、虚拟

虚拟就是将一个 "物理实体" 变成 若干个 "逻辑上的对应物",物理实体是实际存在的(比如电脑运行内存大小、计算机的1个单核CPU),逻辑对应物是用户感受到的(比如玩游戏时感觉运行内存变得好大、打开多个软件以为是多个CPU同时工作)

注意:【虚拟性】依赖于【并发性】来体现,如果没了【并发性】,【虚拟性】就没有存在的意义


5、异步

这个对于java以及前端开发的兄弟们应该再熟悉不过了,异步就是多个进程并发运行,但是有限的资源被一个进程占用时,有的进程可能就需要等待,并不是所有进程都是一路顺利贯穿到底的

我自己的项目经验的例子是:

有的时候我们开发前端,当加载页面的时候有些图片资源是需要通过向后端发送请求获取的,那这跟时候加载页面会直接运行 "渲染静态数据"、"渲染样式"......等等进程,而"渲染图片"这个进程可能就要等待请求成功响应回数据之后,再渲染,页面就会出现空白或者预加载的假图片;

或者我们的setTimeout这种函数,就是异步,我们正常执行别的函数、进程,然后等我们设置的时间到了,才会触发setTimeout这个函数的进程开始。

《王道考研》里的例子是:

相关推荐
CrazyZ1262 小时前
C++第九章编程练习答案
开发语言·c++·笔记·学习·算法
Magnetic_h2 小时前
【iOS】KVC
笔记·学习·macos·ios·objective-c·cocoa
CXDNW3 小时前
【Linux篇】网络编程基础(笔记)
linux·服务器·网络·c++·笔记·网络编程
Q186000000003 小时前
安装MySQL驱动程序笔记一
数据库·笔记·mysql
Magnetic_h4 小时前
【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数
笔记·学习·ios·objective-c
Naiva4 小时前
ESP32 入门笔记02: ESP32-C3 系列( 芯片ESP32-C3FN4) (ESP-IDF + VSCode)
ide·笔记·vscode
Pandaconda5 小时前
【计算机网络 - 基础问题】每日 3 题(十八)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
做技术的Pandaer5 小时前
随笔 程序运行的基本原理
java·操作系统
未 顾5 小时前
JavaWeb--纯小白笔记04:Tomcat整合IDEA
java·笔记·intellij-idea