操作系统基本结构和原理简介

前言

部分朋友可能对底层较为感兴趣,希望多了解一些操作系统,该文为这些朋友提供一些方便。操作系统博大精深,本文只能简要介绍一二,皆为操作系统基本知识,多数只能就就原理概念作扼要论述,具体细节有依赖于专门的教材予以论述。若想对部分细节较感兴趣,也可与笔者交流。本文重于原理,不涉及具体系统,语言可能枯燥无味,望朋友们谅解。考虑到严谨性,本文参考教材上概念。由于笔者能力有限,疏忽之处在所难免,还望各位朋友指正。

引论

1.1 操作系统的目标和作用

目前存在多种类型的OS,诸如多道批处理系统,分时系统,实时系统和早期曾存在的人工操作方式和单道批处理系统(已淘汰),目标各有侧重。多道批处理系统重在提高资源利用率和吞吐量,分时系统重在人机交互,实时系统则要求能及时响应外部事件的请求。此外,微机操作系统还有单用户单任务操作系统,例如CP/M和MS-DOS,单用户多任务操作系统,例如Windows,和多用户多任务操作系统,例如UNIX OS和它的两个有名的变种Solaries和Linux OS.

操作系统的目标一般有四个(1)有效性,有效性有两个含义,提高系统资源利用率和吞吐量(2)方便性(3)可扩充性(4)开放性

1.2 操作系统的作用

从一般用户的观点看,OS是用户与硬件系统的接口。从资源管理的观点看,OS是系统资源的管理者。

1.OS作为用户与计算机硬件系统的接口

用户在OS的帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。用户可通过三种方式使用计算机:(1)命令方式(2)系统调用方式(3)图形、窗口方式

2.OS作为计算机系统资源的管理者

在计算机中资源可分为四类:处理器、存储器、I/O设备以及信息。当计算机供多个用户使用时,用户对系统中共享的资源可能发生冲突,操作系统必须协调各资源的使用。

3.OS实现对计算机硬件资源的抽象

OS是铺设在硬件上的多层软件,不仅增加系统功能还隐藏了对硬件操作的细节。

1.3 操作系统的基本特性

1.3.1 并发性

1.并行与并发

并行是指两个或者多个事件在同一时刻发生,而并发是两个或多个事件在同一时间间隔内发生。

2.引入进程

进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成,是一个能独立运行的活动实体。

3.进入线程

在引入线程的OS中,通常把进程作为分配资源的基本单位,线程作为独立运行和调度的单位。线程比进程更小,基本不拥有资源,调度开销很小,引入线程可以提高系统的并发性。

1.3.2共享性

在操作系统环境下,共享是指资源可供内存多个并发执行的进程(线程)共同使用。共享有两种:互斥共享和同时访问。

1.3.3虚拟技术

操作系统有两种虚拟技术,时分复用和空分复用。时分复用主要有虚拟处理机技术和虚拟设备技术,空分复用主要有虚拟磁盘和虚拟存储器技术。

1.3.4异步性

进程是以不可预知的方式向前推进,但只要操作系统进程管理机制完善且运行环境不变,作业的运行将获得完整的结果。

1.4操作系统的主要功能

操作系统的主要任务是为多道程序的运行提供良好的环境,以保证多道程序高效的运行,并最大限度的提高各种资源利用率和方便用户使用。为此,操作系统必须具备处理机管理,存储器管理,设备管理和文件管理。

1.4.1处理机管理

1.进程控制

程序段、相关的数据段和PCB构成进程实体。进程有三种基本状态(1)就绪,拥有除CPU以外的资源(2)执行(3)阻塞,发生某事件无法执行。此外还有挂起,创建和终止状态。

2.进程同步

进程同步的主要任务是协调多个进程的次序,使进程共享资源和相互合作,从而便程序的执行具有可再现性。进程有两种制约关系:间接和直接。间接是竞争,直接是合作。进程同步的规则:(1)空闲让进(2)忙则等待(3)有限等待(4)让权等待

3.进程通信

通常采用直接通信方式,由源进程利用发送命令将消息挂到目标进程的消息队列上,再由目标进程利用接收命令取出消息。此外还有共享存储器和管道。

4.进程调度

高级调度,主要是作业调度,算法FCFS、SJF 高优先权

中级调度,将暂时不能运行的进程调度到外存上等待。

低级调度,进程调度,算法FCFS、SPF、时间片、多级反馈队列

5.死锁

条件:(1)互斥(2)请求与保持(3)不剥夺(4)环路等待

处理死锁:预防、避免、检测、解除

检测主要使用银行家算法。

1.4.2存储器管理

存储器管理的主要任务提供多道程序运行的环境,方便用户使用,提高内存利用率和从逻辑上扩充内存,程序员可用内存远大于实际内存,运行时使用请求段页式分配内存,只需少量段即可运行。

程序装入:绝对、可重定位和动态运行时。绝对需要熟悉内存使用情况,可重定位目标模块从0开始,装入后重定位,不可移动。动态运行时可移动,目前主流。三者编译都产生逻辑地址,绝对方式可以指定物理地址,但不能运行多道程序。

1.内存分配

连续方式;单一连续分配、固定分区分配、动态分区分配、可重定位分区分配、对换

离散方式:基本分页、基本分段、段页式,请求分页,请求分段,请求段页式

现在主流操作系统使用的是段页式也就是虚拟存储器技术。

2.内存保护(硬件)

一种比较简单的保护机制是设置两个界限寄存器,访问时检查,由硬件实现。

3.地址映射

分页是将进程的逻辑地址空间分成若干大小相等的片,内存物理块作同样的划分,分配内存时以页为单位。分段管理是将作业的地址空间划分若干段,每段定义一组信息,方便编程和共享以及动态增长和链接。段页式是两者的结合,先分段再分页,请求式则是只调入少量段运行,等到缺页(段)时再调入。页面置换算法:OPT、FIFO、LR、CLOCK、LFU PBA

分页地址变换(硬件):页表的功能由一组专门寄存器实现,系统设置一个PTR,页表常驻内存,当进程访问某个逻辑地址时,分页地址变换机构将有效地址分为页号和页内地址,以页号检索页表,当页号大于页表长度时越界中断,否则将页表始址与页号和页表项长度的乘积相加,得到物理地址。分段与此类似,只不过段长不等,地址变换时兼顾段长与段内地址。

4内存扩充

(1)请求调入

(2)置换,将暂时不能运行的进程调换到外存上,外存通常分为文件区和对换区。

1.4..3设备管理

设备管理用于管理外围设备,完成I/O请求,分配设备,提高设备利用率。主要有缓冲管理、设备分配和设备处理,比较简单,目前较多使用SPOOLing技术,设备的中断由操作系统和硬件共同实现。I/O控制方式:程序I/O方式、中断方式、DMA方式、I/O通道、I/O处理机。

1.4.4文件管理

文件管理的主要任务是对用户文件和系统文件进行管理,方便用户使用,保证文件安全性。

1.文件的逻辑结构

文件其它方面较为简单,,操作系统建立文件时会建立FCB,记录文件必备信息,基本操作通过FCB进行。逻辑结构有两种:(1)有结构文件,又称记录式文件,有顺序、索引和索引顺序三种(2)无结构文件,又称流式文件。UINX系统中,所有文件都视为流式,系统不进行格式处理。

此外还有直接文件和哈希文件。

2.外存分配

(1)连续分配

(2)链接分配:隐式和显式

(3)索引分配:单级、多级和混合

混合索引分配在UNIX采用,分为直接、一次间接和多次间接地址。最大可支持4TB文件。

3.目录结构

(1)单级目录

(2)两级目录

(3)多级目录 相对两级而言,层次结构清晰,查询速度更快,能有效的进行文件管理和保护。UNIX、Linux、Windows都采用了该结构。

4.文件存储空间管理

(1)空闲表法,类似于连续分配方式,建立空闲表,记录空间盘块号

(2)空闲链表法

(3)位示图法,利用二进制的一位表示空闲盘块使用情况

(4)成组链接法,UNIX常用,将空闲盘块分成组,每一组的盘块总数记入前一组的空闲块中,第一组计入空闲盘块号栈中。

5 文件共享与保护

(1)基于索引结点

(2)利用符号链接

保护主要依靠ACL实现,此外有用户的口令和密码。

1.5 OS结构设计

1.5.1传统的操作系统结构

1.无结构操作系统

早期的操作系统只注重功能的实现和获得高的效率,没有一致的设计思想,内部结构混乱,可以任意调用,调试困难且难以维护。

2.模块化结构OS

该技术使用分解和模块化来控制大型软件的复杂度,按其功能划分为若干个具有一定独立结构的模块,并规定之间的接口。设计中每一个决定必须建立在另一个的基础上,但各模块设计并进,造成决定的冲突性。

3.分层式结构OS

每一步的设计都是可靠的,每一层仅能使用其底层所提供的功能和服务,可使系统的调试和验证变得更容易。但因此系统效率降低,增加许多不必要的开销。

1.5.2微内核OS结构

微内核能有效的支持多处理机运行,适用于分布式环境。当今流行的OS,几乎全部采用了微内核结构,如Mach OS和Windows。

1.微内核的基本概念(1)足够小的内核(2)基于客户/服务器模式(3)应用机制与策略分离(4)采用面向对象技术

2.微内核的基本功能(1)进程(线程)管理2)低级存储器管理3)中断和陷入管理

3.微内核的优点(1)提高可扩展性(2)增强可靠性(3)可移植性(4)提供对分布式系统的支持5)融入面向对象技术

4.存在的问题:运行效率低下,完成一次服务请求需要多次上下文切换。

后记:本文只是让读者对操作系统结构有个大致的概念,什么功能该操作系统实现,很多细节考虑到篇幅都省略了。此外,操作系统与计算机体系结构(CPU设计)、计算机网络、计算机组成原理有着密切的关系,若有志于改善操作系统的朋友可以去了解,会对操作系统的设计有更深的理解。

转载于:https://my.oschina.net/u/129126/blog/200026

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值