计算机系统由硬件和软件两部分组成。操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次补充。

硬件:计算机物理设备,即各种处理机存储器、输入/输出设备、通信设备等。

软件:指由计算机硬件执行以完成一定任务的所有程序以及数据

(一)操作系统的定义

操作系统(OS,Operating System)是一个管理计算机系统资源、控制程序运行的系统软件,它为用户提供了一个方便、安全、可靠的工作环境和界面。

作为计算机系统的控制和指挥中心,操作系统就是一个软件,而且是一个系统软件(System Software)。它的运行既可依赖于计算机系统的硬件(Hardware),又要管理计算机系统的一切硬件设施。

(二)操作系统的目标

目前存在多种类型的OS,不同类型的OS,其目标各有所侧重。一般来说,就有其中以下几点:

1.有效性

有效性是推动操作系统发展最主要的动力。

操作系统使计算机的内存、CPU、I/O设备等资源得到充分的利用。并且还能够合理地组织计算机的工作流程,从而进一步改善系统的资源利用率和提高系统的吞吐量。

操作系统的有效性包括以下两个含意:

1)提高系统资源利用率        2)提高系统的吞吐量

2.方便性

操作系统的设计应尽量使得计算机系统更容易得到使用。

方便些和有效性是设计操作系统时最重要的两个目标。

3.可扩充性

操作系统采用了模块化结构,以便于增加新的功能模块和修改以前的功能模块。

OS具有很好的可扩充性,能够适应计算机硬件、体系结构以及应用发展的要求。

4.开放性

由于生产厂家生产了各种不同类型的计算机和设备,就出现了兼容性的问题,为使来自不同厂家的计算机和设备能够通过网络加以集成化,并且能够正确、有效地协同工作,实现应用的可移植性和互操作性。要求操作系统(OS)必须建立一个统一开放的开放环境就是OS要具有开放性的前提。

(三)操作系统的作用

从不同的角度来观察操作系统的作用,从一般用户的角度来看,可把OS看作是用户与计算机硬件系统之间的接口,从资源管理的角度来看,可把OS看作是计算机系统资源的管理者。

OS实现了对计算机资源的抽象,隐藏了对硬件操作的细节。

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

操作系统作为用户与计算机硬件西永之间的接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。**注意**:操作系统是一个系统软件,这类型的接口属于软件接口。

OS作为接口的示意图:

从图中可以看出,用户可以通过三种方式使用计算机:

1.命令方式       2.系统调用方式       3.图形、窗口方式        2.OS作为计算机系统资源的管理者

在计算机系统中,通常都包含了硬件和软件资源,归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。

相应地,OS的主要功能也正是针对这四类资源进行有效的管理,即:          1)处理机管理:用于分配和控制处理机     2)存储器管理:主要负责内存的分配和回收     3)I/O设备管理:负责I/O设备的分配和操纵     4)文件管理:负责文件的存取、共享和保护      3.OS实现了对计算机资源的抽象

在裸机(完全无软件的计算机系统)上安装OS后,便可变成一台功能显著增强,使用极为方便的多层扩充机器或多层虚拟机。

OS是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,也隐藏了对硬件操作的细节,而且也实现了对计算机硬件操作的多个层次的抽象。

(四)推动操作系统发展的主要动力

推动操作系统发展的主要动力,可以归结为如下四个方面:

1.不断提高计算机资源的利用率

在计算机发展初期,系统特别昂贵,提高计算机系统中各种资源的利用率,这是OS最初发展的推动力。由此形成了自动地对一批作业进行处理的多道批处理系统。

在20世纪60年代和70年代,出现了能有效提高I/O设备和CPU利用率的SPOOLing系统和改善存储器系统利用率的虚拟存储器技术,以及在网络环境下,在服务器上配置了允许所有的网络用户访问的文件系统和数据库系统。

2.方便用户

当资源利用率不高的问题得到解决,用户在上机、调试程序时的不方便性就成了主要矛盾。随后就形成了允许用户进行人机交互的分时系统,或称为多用户系统。

在10年代初出现了受到用户欢迎的图形化用户界面。

3.器件的不断更新换代

微电子技术的发展,也推动了计算机器件,特别是微机芯片的更新,使得计算机性能得到了提高。

在多处理机发张的同时,外部设备也得到了发展。

4.计算机体系结构的不断发展。

计算机体系结构的发展,也推动了OS的发展并产生新的操作系统类型。

所有的内容都是属于考研备考笔记,如有错误,请大家指出。

不介意的可以直接上我的GitHub:https://github.com/Soler0502H/Postgraduate_notebook_for_SJTU_Software_Program

OS考研复习笔记——操作系统的定义、目标、作用和发展的主要动力的更多相关文章

  1. Angular复习笔记7-路由(下)

    Angular复习笔记7-路由(下) 这是angular路由的第二篇,也是最后一篇.继续上一章的内容 路由跳转 Web应用中的页面跳转,指的是应用响应某个事件,从一个页面跳转到另一个页面的行为.对于使 ...

  2. Angular复习笔记5-指令

    Angular复习笔记5-指令 在Angular中,指令是一个重要的概念,它作用在特定的DOM元素上,可以扩展这个元素的功能,为元素增加新的行为.本质上,组件可以被理解为一种带有视图的指令.组件继承自 ...

  3. angular复习笔记4-模板

    Angular复习笔记4-模板 简介 模板是一种自定义的标准化页面,通过模板和模板中的数据结合,可以生成各种各样的网页.在Angular中,模板的默认语言是HTML,几乎所有的HTML语法在模板中都是 ...

  4. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  5. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  6. Angular复习笔记7-路由(上)

    Angular复习笔记7-路由(上) 关于Angular路由的部分将分为上下两篇来介绍.这是第一篇. 概述 路由所要解决的核心问题是通过建立URL和页面的对应关系,使得不同的页面可以用不同的URL来表 ...

  7. Angular复习笔记6-依赖注入

    Angular复习笔记6-依赖注入 依赖注入(DependencyInjection)是Angular实现重要功能的一种设计模式.一个大型应用的开发通常会涉及很多组件和服务,这些组件和服务之间有着错综 ...

  8. Java二次复习笔记(1)

    Java二次复习笔记(1) Java采用的默认字符编码集是Unicode. byte=byte+byte报错,值为int,而byte+=byte不报错.同样short = short+short报错, ...

  9. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

随机推荐

  1. (转)MySql数据库4【命令行赋权操作】

    MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 原文:http://www.cnblogs.com/zhuyibo/p/3980328.html 一.g ...

  2. maven 根据profile,resources,filters来区分部署环境

    项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境.如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要. maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包, ...

  3. 【开源组件】FastDFS集群搭建与实战

    FastDFS是一个轻量级的分布式文件系统,在实际生产环境往往以集群的形式部署,保证了服务的高可用.本文重点阐述FastDFS集群的搭建和项目实战. 工作流程 上传流程图 下载流程图 基本概念可参考作 ...

  4. 人脸识别(基于Caffe)

    人脸识别(基于Caffe, 来自tyd) 人脸识别(判断是否为人脸) LMDB(数据库, 为Caffe支持的分类数据源) mkdir face_detect cd face_detect mkdir ...

  5. android studio的jni和so

    1. android studio自己添加代码生成so 代码地址:https://github.com/maogefff/Android-Test-Sample/tree/master/MyJni 参 ...

  6. 数据库命令行操作语句 linux 详细

    1.连接数据库 命令: use <数据库名> 2.查看表的引擎类型等状态信息 SHOW TABLE STATUS [FROMdb_name] [LIKE 'pattern'] 3.当前数据 ...

  7. C# 之StringBulider简单用法

    StringBuild的是个动态对象,可直接拼加上字符串:而string对象的步骤:先初始化对象并赋值了,而后在拼加字符串时,先要创建需要拼加的字符串,然后再拼加,所以这就是StirngBuild远比 ...

  8. c# 根据父节点id,找到所有的子节点数据

    转自:https://blog.csdn.net/q107770540/article/details/7708418 查的是表 Model_info中父节点为p_id时找到所有的子节点的集合 //通 ...

  9. centos文件/文件夹操作-检查磁盘、内存、cpu使用情况-vi操作命令

    Part1:CentOS文件/文件夹操作 1.新建文件夹 即创建目录 mkdir 文件名 新建一个名为test的文件夹在home下 vi source1 mkdir /home/test 注意:当创建 ...

  10. 最新sublime Text3 注册激活码

    sublime build 3103注册码 Enter License -- BEGIN LICENSE --Ryan ClarkSingle User LicenseEA7E-8124792158A ...