操作系统的前世今生

为什么要有操作系统

大家不妨思考下,如果说,你的电脑没有了操作系统了,你怎么用电脑?显而易见,99%的人都对其毫无办法,哪谁有办法?熟悉机器指令,汇编指令的那一批人,但是显然他们同样也需要对应的工具才能让电脑按照它们的想法去执行。但是这样子的话,显然,对于那99%的人来说,计算机就失去了它应有的作用。那怎么办呢?怎么才能让那99%的人也能使用计算机呢?
操作系统的出现解决这个问题。由熟悉机器指令,汇编指令的那一批人设计出的最接近硬件的软件——操作系统,让那99%的用户能够使用计算机进行工作.

操作系统的目的和作用

目的

在计算机系统上配置操作系统,其主要目标是:

  1. 方便性
  2. 有效性
  3. 可扩充性
  4. 开放性

作用

  • 操作系统作为计算机系统资源的管理者

    1. 处理机管理
      在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撒销、如何管理、如何避免冲突、合理共卒就是进程管理的最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
    2. 存储器管理
      存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能,
    3. 文件管理
      计算机中的信息都是以文件的形式存在的,操作系统中负贵文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
    4. 设备管理
      设备管理的主要任务是完成用户的O请求,方便用户使用各种设备,并提高设备的利用率,主要包括级神管理、设备分配、设备处理和虚拟设备等功能。这些工作都由“工人”负资,“雇主”无须关注。
  • 操作系统作为用户与计算机硬件系统之间的接口
    为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行:另一类是程序接口,编程人员可以使用它们来请求操作系统服务。

    1. 命令接口
      使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口

      • 联机命今接口又称交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。联机命令接口可以这样理解:“雇主”说一句话,“工人”做一件事,并做出反惯,这就强调了交互性。脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成
      • 脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,从而间接地控制作业的运行。脱机命令接口可以理解为:“雇主”把要“工人”做的事写在清单上,“工人”按照清单命令逐条完成这些事,这就是批处理
    2. 程序接口
      程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。当前最为流行的是图形用户界面(GUI),即图形接口。GUI最终是通过调用程序接口实现的,用户通过鼠标和键盘在图形界面上单击或使用快捷键,就能很方便地使用操作系统。严格来说,图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分
  1. 操作系统用作扩充机器
    没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户而前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,其外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器。因此,我们通常把覆盖了软件的机器称为扩充机器或虚拟机。“工人”操作机器,机器就有更大的作用,于是“工人”便成了“扩充机器”。

计算机的基本特性

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

  1. 并发(Concurrence)
    **并发是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。**在操作系统中,引入进程的目的是使程序能并发执行。注意同一时间间隔(并发)和同一时刻(并行)的区别。在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机环境下实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的,操作系统的并发性是通过分时得以实现的。注意,并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。我们以现实生活中的直观例子来认识并发和并行的区别。例如,如果你在9:00一9:10仅吃面包,在9:10一9:20仅写字,在9:20—9:30仅吃面包,在9:30—10:00仅写字,那么在9:00一10:00吃面包和写字这两种行为就是并发执行的:再如,如果你在9:00一10:00右手写字,左手同时拿着面包吃,那么这两个动作就是并行执行的。

  2. 共享(Sharing)
    资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为以下两种资源共享方式。

    1. 互斥共享方式
      系统中的某些资源,如打印机、磁带机,虽然可供多个进程使用,但为使得所打印或记录的结果不致造成混滑,应规定在一段时间内只允许一个进程访问该资源。为此,当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统便将之分配给进程A使用,此后有其他进程也要访问该资源时(只要A未用完)就必须等待。仅当进程A访问完并释放该资源后,才允许另一个进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享
    2. 同时访问方式
      系统中还有另一类资源,这类资源允许在一段时间内由多个进程“同时”访问。这里所说的“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”的。可供多个进程“同时”访问的典型资源是磁盘设备,一些用重入码编写的文件也可被“同时”共享,即允许若干个用户同时访问该文件。注意,互斥共享要求一种资源在一段时间内(哪怕是一段很小的时间)只能满足一个请求,否则就会出现严重的问题,(你能想象打印机第一行打印A文档的内容、第二行打印B文档的内容的效果吗?)而同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。

    并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:①资源共享是以程
    序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题:②若系统不能
    对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。

    1. 虚拟(Virtual)
      虚拟是指把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实的,即实际存在的:而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术,称为虚拟技术。操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。
      虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。类似地,可以采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们把用户感觉到(但实际不存在)的存储器称为虚拟存储器。还可采用虚拟设备技术将一台物理/O设备虚拟为多台逻辑上的O设备,并允许每个用户占用一台逻辑上的/O设备,使原来仅允许在一段时间内由一个用户访问的设备(即临界资源)
      变为在一段时间内允许多个用户同时访问的共享设备。因此,操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器
    2. 异步(Asynchronism)
      多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变壁的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。

两周带你学会计算机操作系统——第一天:操作系统的前世今生相关推荐

  1. 计算机二级前两周,知道这些,计算机二级两周够了

    如果你能穿越第一次计算机二级考试,那么当时的题库就只有两套.如果这次是3月份的话,九月份计算机二级题库就变成了以前的两套题加新增的2-3套题.迄今为止,计算机二级office.c语言已经增加到30多套 ...

  2. 汤晓丹的第四版计算机操作系统--第一章总结概述

    计算机操作系统 最近为了考研复试而复习的计算机操作系统,计算机网络,数据库系统概论,离散数学.现在将复习的书上的知识点整理总结出来,与大家共享. 第一章 操作系统概论 操作系统的目标:方便性,有效性, ...

  3. 《计算机操作系统》——1. 操作系统的目标和作用

    教材<计算机操作系统>第四版 1.1 操作系统的目标和作用 目标与应用环境有关 1.1.1 操作系统的目标 方便性 有效性 提高系统资源利用率 提高系统的吞吐量 可扩充性 与OS的结构相关 ...

  4. 计算机操作系统第一章

    1.1操作系统的目标及作用 1.1.1操作系统的目标 1.方便性:方便用户使用 2.有效性:提高计算机资源使用效率,加大计算机吞吐量 3.可扩充性:可以添加新的功能和模块 4.开放性:指系统能遵循世界 ...

  5. 五分钟带你了解 计算机操作系统——内存管理(万字详解·图文)

    目录 无存储器抽象 一种存储器抽象:地址空间 地址空间的概念 交换技术 空闲内存管理 使用位图的存储管理 使用链表的存储管理 虚拟内存 分页 页表 加速分页过程 对大内存的页表 页面置换算法 最优页面 ...

  6. 计算机操作系统第一章课后答案

    1.设计现代OS的主要目标是什么? 答:有效性:方便性:可扩充性:开放性 2.OS的作用可表现在哪几个方面? 答: (1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 ...

  7. 计算机操作系统与嵌入式操作系统的区别,嵌入式操作系统与通用计算机操作系统的区别...

    匿名用户 1级 2010-03-22 回答 嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 嵌入式系统主要由嵌入 ...

  8. 计算机操作系统原理复习笔记——考试版

    计算机操作系统 文章目录 计算机操作系统 第一章 绪论 1.1 操作系统与计算机体系结构的关系 1.2 操作系统的形成与发展 1.3 操作系统的定义 1.4 操作系统的资源管理功能 1.5 操作系统的 ...

  9. 大学课程 | 《计算机操作系统》详细知识点总结

    文章目录 计算机操作系统 第一章 操作系统引论 1.1 操作系统的目标和作用 1.1.1 操作系统的目标 1.1.2 操作系统的作用 1.1.3 推动操作系统发展的主要动力 1.2 操作系统的发展过程 ...

最新文章

  1. 获取个人借阅信息---图书馆client
  2. 《Jersey用户指南》翻译邀请
  3. CacheManager - 用 C# 编写的 .NET 的开源缓存抽象层
  4. dropout为什么有效
  5. vue 开发中element-ui库的switch开关绑定number类型数据不成功问题 解决方法
  6. 开课吧课堂:数据可视化的制作方法与准则有哪些?
  7. pyqt:使用qrc文件配置图片资源,生成py文件
  8. DSP控制的电力线通信模拟前端接口设计
  9. FastStone Capture:Windows系统下小巧好用的宝藏电脑截图软件
  10. 静态网页HTML知识点归纳
  11. 数据库之战| 寻找你心中的数据库漫威英雄
  12. MyBatis批量的增删改查操作
  13. Hash表_拉链法_开放寻址法_模拟散列表
  14. android 使用iphone线控耳机,耳机 篇一:关于安卓手机怎么用苹果专用耳机的问题...
  15. 鸟哥的Linux私房菜视频!
  16. Python爬取多页糗事百科
  17. axure中的拐弯箭头_Axure之幼儿养成记---标记元件中页面快照、水平箭头、垂直箭头、便签、圆形和水滴标记...
  18. linux daemon工具,Linux使用daemontools
  19. P2P模式:房产抵押借款如何运营
  20. PAT 乙级 (Basic Level) Practice 1014 福尔摩斯的约会 解题思路

热门文章

  1. 新酷卡 mysql接口_新酷卡M池二次开发模块数据库操作版
  2. 数据库原理与应用实验指导书 实验四:数据查询
  3. 平衡车轮子控制器使用
  4. Vs13 开发水晶报表
  5. matlab对一组数据傅里叶变换,如何对一组数据进行离散傅里叶变换
  6. Splunk机器学习应用(Machine Learning Toolkit)
  7. 基于JAVA设计师品牌服装租赁网站计算机毕业设计源码+数据库+lw文档+系统+部署
  8. 基于C#的SW二次开发
  9. 如何将360流量监控数据清零 解决方法
  10. 台式计算机如何取消屏幕密码,台式电脑怎么设置锁屏