【操作系统学习小记】

什么是操作系统

简单来说,操作系统是配置在硬件上的第一层软件,他的目的是让用户能够更好地使用计算机硬件,能够更高效的管理计算机硬件资源(CPU、内存、硬盘、I/O设备)。操作系统主要作用可以总结成三点:资源管理、为用户提供服务和管理应⽤程序。

1、资源管理

⽽这些资源总是有限的,因此需要有效管理,资源管理最终只有两个问题:资源分配、资源回收。
资源分配:
⽐如进程调度,多个进程同时请求CPU下,应该给哪⼀个进程呢?
再⽐如内存分配,内存不够了怎么办?A进程⾮法访问了B进程的内存地址怎么办?
内存碎片、磁盘碎片等问题。
资源回收: 考虑内存回收后的合并等等。

2、为用户提供服务

操作系统将硬件资源的操作封装起来,提供相对统⼀的接口供用户使⽤。
如果没有操作系统,用户面对的是一个仅提供物理接口的计算机系统,需要用户对物理接口的实现有一定的了解才能初步使用,不仅使用困难,而且使⽤不当还极有可能直接损坏硬件资源。

3、管理应⽤程序

即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。


操作系统主要功能

操作系统主要有四大功能:进程管理(也叫处理机管理)、存储器管理、设备管理和文件管理
处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。
因为处理机的分配和运行都是以进程为单位的,所以处理机管理可以归结为进程管理。

1、进程管理

进程管理主要分为进程控制、进程同步、进程通信、进程调度四个功能。

(1)进程控制

创建进程、终止进程和控制进程在运行过程中的状态转换
(在三态模型中,进程状态分为三个基本状态,即运行态,就绪态,阻塞态。在五态模型中,进程分为新建态、终止态,运行态,就绪态,阻塞态)

(2)进程同步

常用的两种协调方式:互斥和同步。

  • 互斥

    不同进程在对同一临界资源进行访问时采用互斥的方式,比如每一个临界资源配置一把所就是最常见的互斥方式

  • 同步

    对于完成同一任务的多个进程,应该采用同步机制对他们的执行顺序加以协调。比如我们的信号量机制

(3)进程通信

进程通信的任务是实现相互合作进程之间的信息交换。
几种重要的进程间通信方式:管道、消息队列、共享内存、信号量、信号、Socket。

(4)进程调度

通常分为抢占调度方式和非抢占调度方式,常见的调度算法有:
1.先来先服务算法(FCFS,First Come First Service)(非抢占式算法)
2.短作业优先算法(SJF,Short Job First)(可抢占也可以非抢占)
3.高响应比优先算法(非抢占式算法)
总结:这三种算法只根据公平,平均等待时间,平均周转时间等来评价系统的整体性能指标,不关心响应时间和任务的紧急陈程度,对于用户来说,交互性很差,所以这三种算法只适用于早期的批处理系统。
4.时间片轮转算法(抢占式算法)
5.优先级调度算法(可抢占也可以非抢占)
6.多级反馈队列算法(抢占式算法)

2、存储器管理

存储器管理的主要任务是提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。
为此,存储器管理应具有内存分配和回收、内存保护、地址映射和内存扩充等功能。

(1)内存分配

内存分配主要有三个任务

  • 为每道程序分配内存空间,使它们“各得其所”。
  • 尽量减少不可用的内存空间(碎片),提高存储器的利用率
  • 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

操作系统在实现内存分配的时候,有静态和动态两种方式

  1. 静态分配方式。每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。
  2. 动态分配方式。每个作业所要求的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。

(2)内存保护

内存保护主要任务是
① 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。
② 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。
在我们开发过程中经常遇到的内存越界就是由内存保护机制发出的中断请求。
一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。

(3)地址映射

在多道程序环境下,由于每道程序经编译和链接后所形成的可装入程序其地址都是从0开始的,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序段的)地址空间内的逻辑地址与其在内存空间中的物理地址并不相一致。为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。

(4)内存扩充

就是虚拟存储技术,从逻辑上扩充内存容量。为了实现这一技术,系统必须实现两大功能:请求调入功能和置换功能,这也很好理解,我们实际内存是没有变的,程序也必须要在内存上执行,只是暂时借用了磁盘空间存放数据。
(1)请求调入功能,系统允许在仅装入部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向OS 发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行。
(2)置换功能,若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至硬盘上,以腾出内存空间,然后再将所需调入的部分装入内存。

3、设备管理

设备管理的主要任务
(1) 完成用户进程提出的I/O请求
(2) 提高 CPU 和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
为了实现这两个任务,设备管理应具有缓冲管理、设备分配和设备处理功能

(1) 缓冲管理

缓冲管理就是在I/O设备和CPU之间引入缓冲,提高CPU的利用率,进而提高系统吞吐量。大家都知道,CPU的处理速度比I/O设备是高出好几个数量级的。常见的缓冲区机制有:单缓冲机制、能实现双向同时传送数据的双缓冲机制、能供多个设备同时使用的公用缓冲池机制。这些缓冲区都由操作系统管理。

(2) 设备分配

设备分配的基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,给进程分配它所需要的设备。设备使用完成后,还要立即由系统回收。

(3) 设备处理

基本任务是用于实现CPU和设备控制器之间的通信。
即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
设备处理过程是:首先检查I/O请求的合法性,了解设备状态是否是空闲的,读取有关的传递参数、设置设备的工作方式。然后向设备控制器发出I/O命令,启动I/O设备完成指定的I/O操作。此外设备驱动程序还应能及时响应由控制器发来的中断请求,并根据该中断请求的类型,调用相应的中断处理程序进行处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的I/O请求自动地构成通道程序。

4、文件管理

文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。
文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。

(1)文件存储空间的管理

在多用户环境下,若由用户自己对文件的存储进行管理是不现实的,所以引入了文件系统。
主要任务是:为每个文件分配必要的外存空间,提高外存的利用率

(2)目录管理

两个点,一是文件共享,二是快速的目录查询手段,提高对文件检索的速度

(3)文件的读写管理和保护

读写就是根据用户的请求,从外存中读取数据,或将数据写入外存。
文件保护。为了防止系统中的文件被非法窃取和破坏
① 防止未经核准的用户存取文件;
② 防止冒名顶替存取文件;
③ 防止以不正确的方式使用文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值