计算机基础-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 ...
随机推荐
- Java面试题整理二
一.io有几种流? 有两种流:字节流和字符流. 字节流继承自inputstream和outstream. 字符流继承自write和read. 二.Jdbc的开发流程? JDBC编程的六个步骤: 1)加 ...
- HDU5852 Intersection is not allowed!
There are K pieces on the chessboard. The size of the chessboard is N*N. The pieces are initially pl ...
- centos7.2进入单用户模式修改密码
1 - 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Co ...
- 【目录】Python自动化运维
目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...
- 【EverydaySport】健身笔记——静态牵拉
静态牵拉一般在运动后进行,可以有效的提高肌肉的柔韧性和关节的灵活性,预防和缓解疼痛. 每个动作达到自己活动范围的最大,有牵拉感即说明有效,静态保持至少30秒,切勿震荡,进行2组. 1 大腿前群牵拉 2 ...
- java基础 运算符
算数运算符 加号:在操作数值.字符.字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值, 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串. 除号:整数在使用除号操作时,得 ...
- Vim中的键映射【转】
转自:http://www.cnblogs.com/softwaretesting/archive/2011/09/28/2194515.html http://www.pythonclub.org/ ...
- 使用 ftrace 调试 Linux 内核【转】
转自:http://blog.csdn.net/adaptiver/article/details/7930646 使用 ftrace 调试 Linux 内核,第 1 部分 http://blog.c ...
- iptables 操作
iptables --list 查看列表 iptables删除规则 iptables -nL --line-number Chain INPUT (policy ACCEPT)num target p ...
- 【bzoj4868】期末考试
我还第一次见到省选考三分……? #include<bits/stdc++.h> #define N 200005 using namespace std; typedef long lon ...