操作系统的基本概念

操作系统的概念

计算机系统自上而下分为4个部分:硬件,操作系统,应用程序和用户(此处划分与计算机组成原理中的分层不同)

操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机与硬件之间的中介。

操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织,调度计算机的工作与资源的分配,进而为用户和其他软件提供方便的接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件

操作系统特征

操作系统的基本特征包括:并发,共享,虚拟和异步。

并发

并发指两个或多个事件在同一时间间隔内发生(不是同一时刻,同一时刻指的是并行)。操作系统的并发性是指计算机系统中同时存在多个运行的程序。在操作系统中,引入进程的目的是使进程能并发执行。

共享

共享指资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用。共享主要分为以下两种方式:

(1)互斥共享方式

一段时间内只允许一个进程进行访问的资源我们成为互斥共享的资源。比如打印机,虽然可以供多个进程使用,但为使得所打印的结果不会造成混淆,我们规定在一段时间内只允许一个进程访问打印机。

为此,当进程A访问某个资源的时候,必须先提出请求,如果此时这个资源空闲,那么系统就会把这个资源分配给进程A,之后如果有其它进程访问这个资源的时候,系统就会让别的进程进行等待,直到A进程用完并且释放了这个资源之后,其他进程才能使用。我们将这种共享方式成为互斥式共享,并且把互斥式共享的资源称作为临界资源

(2)同时访问方式

支持多个进程"同时"访问的资源。此处的"同时"指的是宏观上的同时进行,而在微观上,这些进程有可能是交替地对这个文件进行访问,从而实现人们所感觉的"实时共享"的。可以提供多个进程访问的典型设备是磁盘设备,一些用重入编码写的文件也可被"同时"共享,即允许若干个用户同时访问该文件。

注: 并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件。①资源共享是以并发为存在条件的,如果系统不允许程序并发运行,那么自然不存在资源共享的问题。②如果系统不能对资源共享实施有效的管理,那么一定会影响程序的并发运行,甚至根本无法并发执行。(说白了就是,如果你系统不能对资源共享进行有效的管理,有可能一个进程一直占用着一个临界资源不放,那么会导致别的进程不能使用这个资源,会导致别的进程不能继续执行下去了)

(3)虚拟

虚拟指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是现实存在的,而逻辑上的对应物是不存在的,只是用户感觉上存在的一个事物。用于实现虚拟的技术称为虚拟技术。操作系统中运用了虚拟技术的有虚拟处理器,虚拟内存和虚拟外部设备等。

操作系统的虚拟技术可以归纳为:时分复用技术,例如处理器的分时共享;空间复用技术,例如虚拟存储器

(4)异步

多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而实走走停停的,它以不可预知的速度向前推进,这就是进程的异步性(说白了就是CPU有分时复用的功能,但是它不保证每个进程都是能一直走下去的,也许A进程突然遇到了什么阻碍,停在一个位置了,这个事情不是我们能够掌控的,将A进程抽象成所有的进程,我们就说这个是进程的一个属性了,就是异步性)但是,异步性并不会影响进程运行的结果,操作系统需要保证同一个进程每次的运行结果是相同的。

操作系统的目标和功能

操作系统应具有以下几方面功能:处理机管理,存储器管理,设备管理以及文件管理。为了方便用户使用操作系统,还需要向用户提供接口。同时,操作系统可以用来扩充机器,用来提供更方便的服务,更高的资源利用率。

1. 操作系统作为计算机系统资源的管理者(整个课程的核心)

(1)处理机管理

在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。因此进程何时创建,何时撤销,如何管理,如何避免冲突,合理共享就是进程管理的最主要的任务。

(2)存储器管理

存储器管理是为了给更多程序的运行提供良好的环境,方便用户使用以及提高内存的利用率。主要包括内存分配与回收,地址映射,内存保护与共享,内存扩充等功能。

(3)文件管理

计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理,目录管理,文件读写管理和保护等几个方面。

(4)设备管理

设备管理的主要任务是完成用户的I/O请求,方便用户使用各种各样的设备,并提高设备的利用率。主要包括缓冲管理,设备分配,设备处理和虚拟设备等功能。

2.操作系统作为用户与计算机硬件系统之间的接口(需要了解)

操作系统的接口主要分为两类,一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务。

(1)命令接口

使用命令接口进行作业控制的方式主要有两种:联机控制方式和脱机控制方式。对应到命令接口上就是:联机命令接口和脱机命令接口

联机命令接口:又称交互式命令接口,适用于分时或实时系统的接口。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令。最终反馈给用户。(有点像jypter notebook的写程序的方法,我们输入一个命令,python执行一次)

脱机命令接口:又称批处理命令接口,适用于批处理系统,由一组作业控制命令完成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写一份作业控制命令书,连同作业一起提交给系统。(类似于我们写的程序,写完一连串的命令,然后交给系统去运行,我们中间不做任何的干预)

(2)程序接口

程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备,申请分配内存以及其它各种要求。

3.操作系统实现了对计算机资源的扩充

没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,其外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强,使用更方便的机器。因此,我们通常把覆盖了软件的机器称为扩充机器或虚拟机。

说明库函数与系统调用的区别和联系

库函数和广义指令都是在程序中被间接调用的,区别是广义指令是请求操作系统为其提供服务,而库函数是自身被调用去给程序提供服务。库函数可以运行在用户空间中(无特权指令),系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核中。

源程序

本质是一串代码,使用程序设计语言编写的程序,并不是操作系统所管理的计算机资源

操作系统与用户通信接口通常不包括提供管理系统缓存的接口调用

系统中的缓存全部都由操作系统管理,对用户是透明的

广义指令

广义指令就是系统调用命令,而命令解释器属于命令接口,shell是命令解析器,它也属于命令接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

楚江_wog1st

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

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

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

打赏作者

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

抵扣说明:

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

余额充值