计算机基础-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 ...
随机推荐
- opencv在property panel中新建一行
是用cv2.QT_NEW_BUTTONBAR和button type通过竖线结合可以在创建一行,如下 cv2.createButton("CV_RADIOBOX2", redraw ...
- UIDatePicker---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址: iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 UIDatePicker //转载请注明出处--本文永久链接:http://www ...
- Exponial (欧拉定理+指数循环定理+欧拉函数+快速幂)
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2021 Description Everybody loves big numbers ...
- python初步学习-python数据类型-集合(set)
集合 在已经学过的数据类型中: 能够索引的,如list/str,其中的元素可以重复 可变的,如list/dict,即其中的元素/键值对可以原地修改 不可变的,如str/int,即不能进行原地修改 无索 ...
- webstorm vue环境设置
1. 首先安装vue插件,安装方法: setting --> plugin ,点击plugin,在内容部分的左侧输入框输入vue,会出现两个关于vue的插件,点击安装即可.安装完成后,就可 ...
- Python 关于时间和日期函数使用 -- (转)
python中关于时间和日期函数有time和datatime 1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m ...
- python模块 zipfile
zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的zipfile里有两个非常重要的class, 分别是ZipFile和Zip ...
- 一种面向云服务的UCON多义务访问控制方法及系统
)设置每一云服务的义务项:建立每一云服务所包含的义务图:2)根据用户所请求的云服务查找该云服务的所有强制义务图和可选义务图,并提取该用户对该云服务的历史完成情况:3)对每一强制义务图,监控其每一义务项 ...
- Python2.7.3 Tkinter Entry(文本框) 说明
Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor ...
- c#使用selenium+Chromedriver参数配置
using System; //添加selenium的引用 using OpenQA.Selenium.PhantomJS; using OpenQA.Selenium.Chrome; using O ...