计算机基础-day2
为何要有操作系统?
首先要说明一下操作系统是什么?
操作系统是协调、管理、控制计算机硬件和为应用程序提供接口的控制软件,操作系统向下连接硬件,向上承载应用程序。
由于硬件不论种类还是工作流程都是繁杂的,程序员无法对所有的硬件极其工作流程都详细掌握,所以需要一种系统软件来对硬件进行统筹管理,操作系统可以完成程序员无法搞定的驱使硬件工作的操作、能够统筹管理硬件资源进行共享,使人们方便的使用硬件资源。
操作系统的位置
操作系统在本质上也是软件(系统软件),但是区别于普通应用软件,操作系统能够直接管理计算机硬件资源,操作系统由系统调用和内核两部分构成。
操作系统整体位于计算机硬件和应用程序之间,内核部分向下连接、管理、控制计算机硬件,系统调用向上为应用程序提供相应的系统调用接口。

操作系统的功能
操作系统实现的功能主要可以理解为两类
隐藏底层硬件繁杂的调用接口,提供良好的系统级调用接口:
通过操作系统提供的调用接口,应用开发人员无需再考虑如何调用硬件服务的细节,通过操作系统之上的应用,如UI、Shell等,平常的用户也无需考虑底层硬件是如何工作的,方便使用。
应用程序对硬件资源的调用变无序为有序:
一般来讲,一套计算机硬件之上会运行多个应用程序,多个应用程序并没有对硬件资源使用的优先级,很容易产生资源请求冲突,而操作系统可以有效的解决这个问题,能够将不同的应用程序的资源请求序列化,防止冲突产生。
操作系统的发展
第一代计算机(1940-1955):真空管和穿孔卡片
第一代计算机以“埃尼亚克(ENIAC)”为代表,采用真空管作为基础原件制作,当时的计算机还没有操作系统的概念,输入和输出设备主要使用穿孔卡片,系统软件非常原始,所有的程序设计都是由纯粹的机器语言编写,同一时刻只能有一个程序运行在内存中被cpu调用,当有多个程序时候,采用串行的方式,即执行完一个程序后才能执行下一个程序。
第二代计算机(1955-1965):晶体管和批处理系统
采用半导体晶体管作为基础原件制作,这个时代被称为“大型机时代”,大型机时代有了操作系统的概念和低级的汇编编程语言,但是当时需要人力和计算机相结合。第一代计算机的人机交互是1对1的方式,即同一时刻一个人独占计算机资源,编程时候能够及时的进行程序bug的排除,而大型机时代把一堆人的程序攒到一块顺序计算,将所有输出一块输出,依旧是串行的方式,由于按批次执行,无法及时调试程序,极大影响软件开发效率。
第三代计算机(1965-1980):集成电路芯片和多道程序设计
集成电路计算机,以IBM-360为代表,采用中小规模集成电路来构成计算机的主要功能部件,操作系统日渐完善,无需人力干涉,编程语言进入了高级语言的时代。为了解决第二代计算机串行处理的问题,第三代计算机广泛的应用了多道技术,以及后来的分时操作系统。
多道技术:是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行,主要实现方式为时间上的复用和空间上的复用。
时间上的复用:当一个程序等待I/O时,其他程序可以使用CPU资源
空间上的复用:将内存分为几部分,每个部分放入一个程序,同一时间就有了多道程序
分时操作系统:把计算机与许多终端用户连接起来,分时操作系统将系统处理时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样,有效的增加资源的使用率。
第四代计算机(1980-至今):微型机
采用大规模和超大规模集成电路作为基本电子元件,从1983年开始为32位微型计算机的发展阶段,到1993年,Intel公司推出了64位Pentium或称P5(中文译名为“奔腾”)的微处理器,以及后来的酷睿等。
计算机基础-day2的更多相关文章
- 计算机基础--Java中int char byte的关系
计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...
- Java学习之计算机基础(一)
阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...
- 计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- python计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- Python之旅_计算机基础入门
一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
- day01计算机基础
今日内容 1.计算机初步认识 1.计算机认识 1. 计算机基础 1.1硬件:cpu/内存/硬盘/主板/网卡 1.2操作系统 linux:免费开源 windows mac 1.3解释器/编译器 补充:编 ...
- Java面试题 Web+EJB & Spring+数据结构& 算法&计算机基础
六.Web 部分:(共题:基础40 道,基础37 道,中等难度3 道) 122.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? [基础] 答:Web 容器加载Servlet ...
- python note 01 计算机基础与变量
1.计算机基础. 2.python历史. 宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码. 3.pyth ...
随机推荐
- go通过名称来调用对应的方法
仅仅是为了学习go语言中的反射. package main import ( "errors" "fmt" "reflect" ) func ...
- 使用JMeter录制脚本并调试
仍然以禅道中添加bug为例进行录制 第一步:在JMeter中添加线程组,命名为AddBugByJMeter 第二步:在线程组下添加HTTP请求默认值 添加->配置元件->HTTP请求默认值 ...
- Large Class--过大的类--要重构的信号
如果想利用单个类做太多事情,其内往往就会出现太多实例变量.一旦如此,Duplicated Code也就接踵而至. 解决方法: 1.将类内彼此相关的变量,将它们放在一起.使用Extrac ...
- bzoj 1776: [Usaco2010 Hol]cowpol 奶牛政坛——树的直径
农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N.恰好有N-1条单位长度的双向道路,用各种各样的方法连接这些草地.而且从每片草地出发都可以抵达其他所 ...
- java springmvc4 图片或文件上传
1.文件配置 配置文件解析 上传文件处理的核心方法 // uploadOneFile.jsp, uploadMultiFile.jsp submit to. @RequestMapping(value ...
- SIFT四部曲之——高斯滤波
本文为原创作品,未经本人同意,禁止转载 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 或 ...
- sicily 1046. Plane Spotting
1046. Plane Spotting Time Limit: 1sec Memory Limit:32MB Description Craig is fond of planes. Mak ...
- EXT入门学习
今天,对EXT做了一下初步的了解,了解了一些基本用的函数.窗体对象.表单.文本域.按钮,一些基本的函数我列了出来,写了个登陆的demo,是根据别人的例子模仿出来的,见谅哈. 基本函数 Ext.onRe ...
- HDU-2243
考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- go run/ go install/ go build / go get的区别
go run 运行当个.go文件 go install 在编译源代码之后还安装到指定的目录 go build 加上可编译的go源文件可以得到一个可执行文件 go get = git clone + g ...