加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

【计算机体系知识】操作系统笔记(持续更新)

发布时间:2023-02-20 15:06:02 所属栏目:云计算 来源:互联网
导读: 文章目录
概述 入门书籍推荐
建议先自己看一看《计算机是怎么跑起来的》,操作系统和计算机网络都是先开发出系统,后出现的理论,所以建议从实践入手。我认为一门学科要先把他朴素的思想掌

文章目录

概述 入门书籍推荐

建议先自己看一看《计算机是怎么跑起来的》,操作系统和计算机网络都是先开发出系统,后出现的理论,所以建议从实践入手。我认为一门学科要先把他朴素的思想掌握,然后再深挖,否则你一上来就看现代操作系统,速度会很慢。

定义操作系统

在这里插入图片描述

计算机系统层次:

硬件就是裸机,人要想操作就得用0101二进制码。操作系统,将对硬件的二进制指令封装起来,构成操作系统API系统应用建立在操作系统之上,是一些底层的应用,比如链接网络之类的应用程序建立在系统应用之上,编程语言可以调用系统应用或者操作系统底层,实现应用级操作。

在这里插入图片描述

操作系统实际上是建立在裸机之上的一种大型底层软件,其重要职责就是调度资源,管理任务,操作硬件。对用户来说,就是使得对硬件的操作更加便利。

操作系统设计目标:

对系统来说,效率要高,对用户来说,要好用。易于维护。综上,这是一个权衡的过程,想一想python,好用是好用,但是效率低,所以好用和效率之间是有矛盾的,易于维护和效率之间也是有矛盾的。 操作系统的形成 顺序处理(无操作系统)

这个时候的代码就是纸带,打不打孔代表0和1。一条纸带就是一条代码。

在这里插入图片描述

计算机资源的调度也是人工,有一个管理者。

每一个上机的人可以理解为一个任务/作业。

在这里插入图片描述

批处理系统——单通道

这个时候出来一个监控程序,用来替代管理者,接收程序。

操作员把任务成批地放到输入设备上,监控程序逐个执行。很明显这仍然是一种单线程的串行的执行方式,效率比以前只高了一点点,仅仅是省下了等待时间以及人力。

在这里插入图片描述

看这个图,串行操作导致用户程序的输入受阻,用户需要等前一个任务干完才能再次输入。而且不仅要CPU处理完,还要对外设IO完成,执行完全部流程才行,在IO的时候,CPU还在摸鱼,浪费时间。

在这里插入图片描述

批处理系统——多通道

多通道的目标是为了让CPU保持忙碌状态。关键在于IO的时候,让CPU继续忙碌。

多通道批处理系统实现了不同资源之间的并行。如果多个任务分别使用不同的资源,基本可以实现并行,但是如果多个任务使用同一资源,那就和串行一样。

在这里插入图片描述

既然IO不需要CPU,那就把IO和CPU分离,用一个通道来执行IO操作,CPU告诉通道去执行IO,然后通道负责在主存和外设之间IO,同一时刻,CPU继续处理其他任务。

可以这么理解,CPU原来是事事亲力亲为,通道的出现,让CPU把一些任务分发给别的组件,腾出时间处理任务。

在这里插入图片描述

这里实现的并行仅仅是CPU处理和IO之间的并行,而不同任务之间仍然是串行。表面上人们看到任务一股脑丢进去了,实际上还是一个处理完再处理下一个。

在这里插入图片描述

看下面这个图,CPU在程序A,B,操作系统调度这三者之间,同一时间只能选择1个来做。虽然CPU内部不能并行,但是已经实现与IO的并行。

任务A在进行IO的时候,CPU没有等着IO结束,而是直接运行程序B,当B程序IO的时候,没程序需要处理,这才休息了一会,等A程序IO完成,又开始处理A,处理完A以后,恰好B程序IO完了,又处理B程序(此时如果B没有IO完,又没有新的程序,那CPU还可以摸鱼)

在这里插入图片描述

下图给出一些指标,可以用一个实际问题来计算一下:

在这里插入图片描述

在这里插入图片描述

这里将CPU调度的时间忽略。

在这里插入图片描述

首先计算出总时间。分别是30min和15min

然后看吞吐量。吞吐任务是3个job,除以时间得出吞吐量。所谓的吞吐量,实际上是单位时间完成任务数。

周转时间。因为任务是批量放入的,计算如下:

多通道=1+15+103=10单通道=(5)+(5+15)+(5+15+10)3=553≈18多通道=\dfrac{1+15+10}{3}=10 \\[5pt] 单通道=\dfrac{(5)+(5+15)+(5+15+10)}{3}=\dfrac{55}{3}\approx18多通道=31+15+10?=10单通道=3(5)+(5+15)+(5+15+10)?=355?≈18

至于利用率,就是占用时间/总时间就可以,很明显,在利用不同资源的情况下,多通道系统的资源利用率是很高的。

在这里插入图片描述

批处理系统,任务只要丢进去,控制权就和用户无关了。万一碰上拥挤的情况,你也不知道里面是什么情况。

在这里插入图片描述

分时系统

批处理系统是由管理员独占的。这不符合多用户的需求,于是产生了面向多用户的分时系统。

在这里插入图片描述

系统把计算资源按之间切片,供给不同用户使用,即使用户A的任务还没有完成,只要用户A的时间片消耗完了,就暂停A的任务,去执行其他用户的任务,实现一种多用户之间的伪“并行”。

在这里插入图片描述

同时使用,合理。

但这个独立是伪独立,只是感觉不到其他用户。

交互,可以理解为发送任务就调用时间片资源。

及时是相对及时,是不用等前一个任务整个完成,只需要等他的时间片过了就好。

在这里插入图片描述

实时系统

分时系统中多用户的级别是平等的,时间分配也是平均的。

实时性+确定性:实际任务并不是均等地位的,所以要加上优先级,如果有更重要的任务来了,当前任务即刻暂停,资源被抢占,这样就可以预测一个任务消耗的时间,如果是一个最重要的任务,那一定是实时执行的,就不可能出现拥堵。

可靠性:这种系统一般都是用于重要的场景,所以通常有备用机,体现出可靠性。

在这里插入图片描述

在这里插入图片描述

嵌入式系统

核心在于可裁剪,可以理解为一种定制化。

在这里插入图片描述

操作系统的功能,特性,服务 功能

在这里插入图片描述

在这里插入图片描述

这几个表和操作系统的功能一一对应,储存状态。

在这里插入图片描述

特性

并发和共享是离不开的,在多通道系统中,资源可以共享才能实现资源的并行,宏观的并行。

逻辑上的虚拟化云计算系统组成,支撑了多用户的使用。

最后的异步性其实是一个缺点,并发与资源之间的制约导致进程之间的调度不完全由管理员和用户控制。

在这里插入图片描述

在这里插入图片描述

服务(API)

服务可以理解为API

在这里插入图片描述

操作系统的发展 个人计算机操作系统:

单用户单任务MS-DOS;单用户多任务Windows;多用户多任务Unix,Linux多处理机操作系统:

非对称多处理(ASMP),多个CPU是主从关系,一个CPU负责操作系统与调度,其他负责任务处理;对称多处理(SMP),CPU是平等的。网络操作系统。 计算机网络将不同的计算机联系起来。这时一个计算机就可以使用其他计算机的资源了,其中一个重要的概念就是TCP/IP协议栈。

两种模式,客户/服务器模式,这种情况下服务器压力比较大;对等模式(Peer-to-peer),这就是大名鼎鼎的p2p,没有服务器和客户端的区别。所以p2p下载,可以提速,我的猜测就是多个用户分开下载,然后互相传输,服务器用户下发了1个文件的数据,就一次性分发给了n个用户,把传输负载分摊到用户身上。如果是服务器模式,那就得分发n次。分布式操作系统。可以理解为,将n个计算机通过网络连接成虚拟的单台主机。目前还没有一个大成的分布式操作系统,但是已经有基于软件框架的集群系统了,比如hadoop,就是典型的分布式框架,只要配置好网络,即使节点机器都各自有一个私有的操作系统,也可以成为集群。虚拟化和云计算。虚拟化可以理解为物理层和逻辑层的分离。物理层可以是m台机器,虚拟的逻辑层则是n台机器。虚拟化可以从操作系统层就开始虚拟化,也可以通过VmWare/virtual box这种建立在操作系统上的软件层开始虚拟化。而云计算是基于虚拟化技术的云端服务。

在这里插入图片描述

用户与操作系统的接口

在这里插入图片描述

图形接口

封装的最好的是图形接口,这个接口是一个叫Explorer.exe的进程,Linux的话有KDE/GNOME接口。

在这里插入图片描述

命令行接口

其次是命令接口,一个shell就是一个进程,shell相当于命令解释程序。

系统调用

最底层的是系统调用。系统提供函数,函数进行系统调用,比如Linux/Unix POSIX API,Windows Win32 API。当然,系统调用的底层执行和普通库函数是不一样的。

CPU有用户态和核心态。用户态操作的是不太关键的组件,而系统关键的资源都是在核心态运行。系统调用属于关键任务,所以要把CPU切换到核心态。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

操作系统的运行方式

中断由硬件产生,是正常的功能。操作系统不一定会马上处理中断,所以是异步事件。

异常由软件产生,即刻处理,且不能被屏蔽。

操作系统的设计规范与结构设计

在这里插入图片描述

在这里插入图片描述

单块式(整体式)内核:操作系统就是一个整体,通常是比较小的内核,比如DOS,比较简陋,也不会区分模块

在这里插入图片描述

分层结构是最常见的。

在这里插入图片描述

微内核将内核的不同功能拆分,移到用户空间。这样灵活,安全,但是拆分代表着要通信,通信成本会影响效率。

在这里插入图片描述

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!