操作系统-笔记-第一章-操作系统的概念

🌸章节汇总 

一、第一章——操作系统的概念

二、第二章——【进程】

二、第二章——【线程】​编辑

二、第二章——【进程调度】

二、第二章——【进程同步与互斥】

二、第二章——【锁】

三、第三章——内存管理

四、第四章——文件管理

五、第五章——输入输出管理

🚀 学习心得

目录

一、第一章——操作系统的概念

1、操作系统的概念、功能

(1)层次

(2)总结

2、操作系统的特征(4个)

(1)并发与并行

(2)共享与互斥

(3)虚拟

(4)异步(Asyn)

3、操作系统的发展与分类

(1)实时操作系统

(2)网络、分布式、个人

4、操作系统的运行机制

(1)用户态 & 内核态

(2)总结

5、中断(※※※※※)

(1)外中断 & 内中断

(2)中断程序——内核程序(内核态)

(3)总结

6、系统调用

(1)总结

7、操作系统的内核(结构体系)

(1)大内核 & 微内核

(2)优缺点

(3)总结

8、操作系统(电脑开机做了什么事情)

9、虚拟机

(1)一个物理机上(可以有多个操作系统) 

(2)虚拟机的分配方式


一、第一章——操作系统的概念

1、操作系统的概念、功能

(1)层次

(2)总结

2、操作系统的特征(4个)

(1)并发与并行

并发——时间段(服务器——高并发:对请求接口可以实现很多的应答~)

并行——时刻(同时进行——多线程——多核CPU)

(2)共享与互斥

共享——可以同时使用(资源)

互斥——只能让一个人使用(数据一致性)

互相依靠(共享 & 并发)

(3)虚拟

(4)异步(Asyn)

有并发,才有异步~

那必然是多线程啦~(单独开一个线程,实现异步操作,不会阻塞主线程)

1.   同步(Synchronous):同步指的是任务按照顺序依次执行,并且每个任务必须等待前一个任务完成后才能开始执行。在同步模式下,任务之间的执行是阻塞的,即一个任务的执行会阻碍其他任务的进行,直到该任务完成。

2.   异步(Asynchronous):异步指的是任务可以并发或并行地执行,任务之间相互独立。在异步模式下,任务的执行是非阻塞的,即一个任务的执行不会等待其他任务的完成,而是通过回调函数、事件监听等机制,实现任务的并发执行和结果的返回。

异步编程通常用于处理涉及网络请求、文件操作、数据库查询等需要等待耗时操作的情况,以提高系统性能和资源利用率。

异步编程一般采用事件驱动、回调函数、协程等技术来实现。

  1. 同步编程更加直观和易于理解,但在处理大量并发任务或需要等待的情况下,可能导致程序性能下降和资源浪费。
  2. 异步编程可以更好地利用系统资源,提高程序的效率和响应性。
  3. 选择使用同步还是异步取决于具体的应用场景和需求。
  4. 在编程中,可以根据任务的特性选择适合的模式,或者将同步和异步结合起来,灵活地处理不同的任务和情况。

3、操作系统的发展与分类

(1)实时操作系统

(2)网络、分布式、个人

4、操作系统的运行机制

(1)用户态 & 内核态

当用户态要“越权”时,硬件CPU会检测出问题!自动变态,并且中断程序! 

(2)总结

5、中断(※※※※※)

(1)外中断 & 内中断

内中断——异常(缺页、指令非法、陷入指令-系统调用)

外中断——程序处理(IO、时钟)

(2)中断程序——内核程序(内核态)

硬件和软件都可以实现中断——计算机组成原理有讲

【中断向量表】——查询之后——就知道该执行怎么样的【中断处理程序】

(3)总结

6、系统调用

陷入指令——系统调用

由操作系统提供对应的接口,让应用程序可以使用该指令

当CPU遇到【陷入指令】时,就会…(应用程序把控制权还给了操作系统)

Unix 确实是用【C 语言】编写的,而且是世界上第一个用 C 语言编写的操作系统。

【Windows操作系统】是用【C和汇编语言】开发的

现在【Windows操作系统】正在使用【Rust语言】重构

Windows还支持使用其他编程语言编写应用程序,如C++、C#和Visual Basic等。

(1)总结

7、操作系统的内核(结构体系)

Ubuntu和CentOS都是Linux内核

他们主要开发的是——非内核功能(GUI、命令等)

(1)大内核 & 微内核

为什么是大内核?——因为好几个功能都被划分到了内核态

微内核——状态变换更多

(2)优缺点

大:快(难以维护)

微:慢(模块化、方便维护)

(3)总结

8、操作系统(电脑开机做了什么事情)

首先,我们已经通过BIOS引导,安装了一个操作系统,并且划分了分区,还安装了软件

现在开始开机:

  1. CPU读取磁盘信息(执行主引导程序——硬件自检)
  2. 执行【磁盘引导程序+分区表】
  3. 读取操作系统的初始化程序
  4. 执行操作系统的初始化程序——完成初始化

你的大致描述是正确的,但还可以添加一些细节。以下是对操作系统启动过程的修正和补充:

  1. 电源开启后,计算机进行电源自检,确保各硬件设备正常
  2. 主板上的BIOS芯片被访问,执行Basic Input/Output System (BIOS)程序。BIOS负责初始化各硬件设备,并进行一系列自检,包括检查RAM、显示适配器等。
  3. BIOS通过读取硬盘驱动器的引导区Master Boot RecordMBR)来加载引导程序。MBR位于分区表的第一个扇区,其中存储了引导程序的位置和大小信息。
  4. 引导程序加载操作系统的引导加载程序(bootloader),如GRUBWindows Boot Manager。引导加载程序位于磁盘的特定位置,它负责加载操作系统内核并将控制权转交给它。
  5. 操作系统内核被加载入内存,并开始执行初始化程序。初始化程序负责配置系统环境、加载设备驱动程序和初始化各种子系统。
  6. 初始化过程通常涉及加载一些核心组件、建立内存管理和进程管理结构,以及准备其他必要的系统资源。
  7. 一旦初始化完成,操作系统进入可用状态,用户可以进行交互,并且其他应用程序可以在操作系统上运行。

需要注意的是,不同的操作系统和计算机架构可能会有所不同,但基本过程大致相似。此外,硬盘分区和软件安装的细节通常在操作系统初始化之后完成。

自检——找到引导程序——加载——执行

9、虚拟机

(1)一个物理机上(可以有多个操作系统) 

类似docker

(2)虚拟机的分配方式

第一类——直接运行在物理资源上(权限高、速度快、可安装多个)

第一类——我搞一个双系统(一个Windows、一个Ubuntu)

第二类——在一个操作系统的基础上运行的(速度慢、权限低、一个都够呛~)

第二类——我在Windows上安装一个乌邦图的VMM虚拟机

第二类——方便迁移——可以打包——然后供别人使用(类似docker)

  1. 双系统:你可以在一台计算机上安装两个不同的操作系统,如Windows和Ubuntu,并且可以在开机时选择进入哪个操作系统。
  2. VMM虚拟机:你可以在Windows操作系统上安装虚拟机软件,如VMware或VirtualBox,并在虚拟机中安装Ubuntu操作系统。虚拟机可以模拟出一个独立的计算环境,在其中运行另一个操作系统。

长路漫漫,我越学,感觉越发吃力,是因为正反馈来得不够么?不行,我得继续努力,星光不负赶路人!你还记得三年前么?你那时还是一个小白,什么都不懂,但有一腔热血!三年来,你的热血还在么?你的一切!!!就看今朝了!!!坚持下去,别放弃,你一定得成功!你必须得成功啊!——总之,加油啊!!!咬牙挺住!


时间:2023年8月14日15:09:25

  • 43
    点赞
  • 254
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
操作系统的重点知识笔记包括以下内容: 1. 操作系统的基本概念和地位,涉及操作系统的定义、作用以及在计算机系统中的位置。 2. 操作系统的主要特征和基本功能,包括进程管理、内存管理、文件系统、设备管理等。 3. 操作系统的体系结构,涉及单体结构、客户端-服务器结构、分层结构、微内核结构等不同的操作系统结构设计方法。 4. 操作系统的发展和结构,包括不同操作系统的发展历程和演变过程,以及它们的结构特点。 5. 对于Java基础学习,可以参考比较详细的Java基础学习笔记。 总之,操作系统是指在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,它允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [自考操作系统02326笔记2017版教程 第一章](https://download.csdn.net/download/alang1991/11076432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java基础笔记MarkDown版4万字肝吐血](https://download.csdn.net/download/qq_33865785/88275967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [操作系统OS笔记与知识点总结](https://download.csdn.net/download/ruanerzhaopeng/10128041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pan_peter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值