计算机与操作系统基础小结

  计算机基础概念

  1946年二月美国,世界上第一台电子计算机ENIAC诞生,似乎从这一年开始世界便逐渐变得不一样了。随着半个世纪的时间,计算机技术蓬勃发展,推动人类进入信息社会。

  计算机操作界面:

  ①图形用户界面

  ②命令行界面

  在ENIAC计算机研制的同时,冯.诺依曼与莫尔小组合作研制EDVAC计算机,采用了存储程序方案,即把解题过程中的每一步用指令表示,并按执行顺序编写成为程序,存放在存储器中,称为冯.诺依曼计算机。冯.诺依曼计算机有着如下几个特点。

  (1)计算机由运算器,控制器,存储器,输入设备,输出设备五部分组成。

  (2)采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制码表示。

  (3)指令由操作码和地址码组成。

  (4)指令在存储器中按执行顺序存放,有指令计数器(PC)指名要执行的指令所在的存储单元地址。

  (5)计算机以运算器为核心,运算器进行数字运算有算术运算和逻辑运算两大类,由控制器协调操作运算器和其他设备之间的操作,存储器以随机存储器RAM为主,输入输出设备与存储器间的数据传送都通过运算器。

  根据电子计算机所采用的物理器件的发展,一般把电子计算机的发展分成五个阶段,习惯上称之为五代。

  第一代:电子管计算机计算机时代

  第二代:晶体管计算机计算机时代

  第三代:集成电路计算机计算机时代

  第四代:大规模集成电路计算机时代

  第五代:超大规模集成电路计算机时代

  计算机的硬件是计算机实现各种功能的基础,软件则是实现功能的方法,由指令加上数据构成的,将频率转换成信息类型让逻辑硬件能够理解并运行。如遥控器红外线操控功能和触摸屏进行逻辑转换变成二进制的机器语言形式能够让计算机理解。

  计算机语言有机器语言,微码语言(汇编语言)和高级语言三大类,机器语言作为计算机最底层的语言,它的普适性最强但针对性弱,是由二进制直接实现的,在计算机刚出现那会人们便是利用机器语言来对计算机进行操作,但由于机器语言都由二进制代码写成,这对于程序员的压力太大,效率更是低。基于这样的背景下汇编语言应运而生。汇编语言利用符号代替二进制码,因此汇编语言又叫做符号语言,使用汇编语言编写的程序,硬件不能直接识别,要利用汇编程序将汇编语言转化成机器语言这样硬件才能够识别。对于汇编语言来说这个过程我们称之为汇编过程,利用汇编器来达成。汇编语言与芯片的耦合度很高,但在某个芯片上编写的汇编语言基本无法移植到其它芯片上,移植性很差,所以就出现了高级语言。高级语言有很多种,C语言,JAVA,PHP,Python,perl等每种语言皆有其针对性。C语言和JAVA为系统级语言更接近于底层,PHP,Python,perl等则为应用级语言。虽然高级语言针对性强但越接近人类的自然语言,转化成机器语言的效率就低,会产生很多中间代码,在运行的时候所需要的额外开销越大。

  高级语言可分为:

  ①系统级,应用级。

  ②可分为面向过程:按照严格的逻辑结构来编写代码。面向对象:相对自由,更注重数据处理的过程,而不是数据结构。

  ③可分为强语言(编译性语言):C语言,C++,JAVA。不声名变量就无法使用,源代码必须经过编译,不编译无法使用。弱语言(解释性语言):PHP,Python,shell,不声明变量也可以使用,不经过编译,经过解释器也可以使用。

  操作系统基础概念

  操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高他们的利用率和系统吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。

  目前我们使用的计算机是数字设备即能够进行数字信息处理和运算的设备。只能理解二进制代码的数字设备。因此任何一个程序想要在计算机上运行,必须编码成二进制代码形式才能被底层硬件所接受,但底层硬件太过简单和丑陋,所以为了方便程序员的开发,供货商会为这些底层丑陋的硬件分配汇编接口,但这些汇编接口也很底层。为了能够很很好的利用这些汇编接口则需要一个能完成汇编功能的程序——驱动程序。一开始,因为不同的硬件需要不同的汇编程序,为了能够对计算机底层硬件进行使用,会为每一个底层硬件的汇编接口编写一个对应的驱动程序进行驱动。但是随着计算机的不断发展,后来的人觉得使用一个硬件就要编写一个对应的驱动程序太过复杂,就有人专门开发这些计算机底层的硬件,封装成一个整体,并且共享出来,这样程序员在开发程序时就不需要自行编写这些代码,直接调用即可。这样程序员在开发程序时,直接调用驱动程序就可以访问硬件,汇编成二进制流就可以被CPU直接处理了。

  操作系统又称为硬件虚拟抽象层。是把硬件虚拟化抽象出来的。(如D盘图标等)不直接去使用硬件,而是用一种代替,虚拟的方式去使用硬件。给硬件分配资源,监控,防止出现资源分配不合理的情况。资源分配不合理,资源浪费会导致系统不运行。这里的操作系统即为内核(kernal)。kernal这个监控程序只是负责把底层的硬件驱动起来并且把底层硬件的各种资源虚拟化。如空间复用,时间复用。

  操作接口(shell),使用操作接口的程序显示在界面时容易管理,反之则不容易管理。有的应用程序是需要与操作接口作用,产生图标在界面上,有的直接通过操作系统访问内核,而不直接与操作接口作用显示在界面上(如木马)。

  操作系统内核可以很好的承上启下,即操作系统的接口与内核kernal之间的联系。内核可以很好的屏蔽底层丑陋的硬件将虚拟化的硬件资源放在计算机界面上方便用户的使用。软件寻找操作系统接口和使用操作系统的接口的过程叫system call,利用这个接口把我们需要的信息,和需要做的操作通过接口传递到操作系统的内核中。即系统调用。调用系统接口的不是程序而是进程。程序是静态的是死的,进程是动态的,是活的。应用程序通过操作接口shell,经过系统调用到操作系统内核,由内核进行汇编,将高级语言翻译成汇编语言再翻译成计算机能够理解的机器语言,从而对硬件进行调用。

  一个完整的操作系统由内核和各种应用程序组成,内核通过屏蔽底层硬件丑陋的接口,虚拟硬件接口以方便用户使用。这些抽象出来的接口,我们称之为系统调用。在程序员编程时采用的代码需要哪些接口,这些需要事先了解清楚再编写代码,否则所编写的代码与操作系统的接口无法匹配上便无法在此操作系统上运行调试。因此程序员必须事先了解清楚操作系统有着哪些接口,但操作系统的接口有着上百个,这对于程序员来说也是一种很大的压力,于是就有一些人将一些常用的到操作系统接口封装成一个库即Library。Library中包含了大量的方法,程序员可以基于库接口进行编程也可以基于内核接口进行编程。在Linux领域,库接口的调用更加自由,方便。这些库也称为API(Application Program Interface).

  如果程序员在编程时使用的是windows操作系统接口,想要在Linux操作系统中运行调试这一段程序,就要确定起初在编写程序时的windows操作接口与现在要运行环境下的操作系统的API库能否统一调用。即POSIX(Portable Operating System)可移植操作系统。任何一个遵守了POSIX 规范的程序代码可以在不同的操作系统上使用。

  编程接口兼容并不意味着二进制接口兼容,也就是说,在程序员编写代码时对操作系统的接口能够兼容但并不意味着能将所编写程序的语言转化成二进制机器语言让硬件进行操作。这里的二进制接口兼容即ABI(Application Binary Interface)。将程序的源代码转化为二进制代码来实现。源代码能不能编译取决于API能不能兼容,源代码编译后能不能执行取决于ABI能不能兼容。

  访问界面程序可以分为两大类

  ①图形用户界面(GUI)

  ②命令行界面(CLI)

  我们常用的windows系统都有一个桌面,这个桌面就是图形用户界面,初学者使用电脑利用GUI会更容易上手,但是但凡是使用过CLI的人都知道,使用CLI的效率要比使用GUI的要高得多。CLI的入门门槛较高,这也导致了许多人不喜欢使用。但是只要一入门,你就会发现命令行界面是非常简单的。使用起来几乎是透明的,哪一个环节出现问题都能迅速找到并且解决。

  从1945年诞生的第一台计算机到50年代中期的计算机,都属于第一代计算机。这是还未出现OS,对计算机的全部操作都是由用户采取人工操作方式进行的。由程序员将事先已穿孔的纸带,装入纸带输入机,再启动它们将纸带上的程序和数据输入计算机,然后启动计算机运行。为了解决人机矛盾和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上,当CPU需要这些程序和数据时再从磁带高速地调入到内存。为了能够充分提高计算机资源的利用率,先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下,使这批作业能够一个接一个地连续处理。虽然系统对作业的处理是成批进行,但在内存中始终只保持一道作业,故称为单道批处理。但单道批处理系统中的资源得不到充分的利用,因为内存中仅有一道程序所以该程序在发出I/O请求后,CPU便处于等待状态。为了进一步提高资源利用率和系统吞吐量,在20世纪60年代中期引入了多道程序的设计技术,由此形成多道批处理系统。在该系统中,,用户所I提交的作业先存放在外村上,并排成一个队列。然后由作业调度程序按一定的算法从队列中选若干个作业进入内存,使他们共享CPU的和系统中的各种资源,由于同时在内存中有若干程序,这样便可以在运行程序A时,利用其因I/O操作而暂停执行的空挡时间在调度另一程序B执行,使多道程序交替执行,这样就可以使CPU处于忙碌状态。

  

  

本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1889800

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF效果第一百八十九篇之又玩Expander+ListBox

上一篇文章已经提前预告了今天要分享的效果,今天接着上一篇的效果接着去实现,还是先来看最终实现的效果:1、关于简单的布局设计:总结&#xff1a;①③是Expander②④⑤⑥是ListBox2、把上一篇的②这一块用ListBox替换:<Expander Grid.Column"1" ExpandDirection&q…

作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀

作为一个出生在罐罐茶世家的80后乡土人&#xff0c;经历了罐罐茶的发展演变历史&#xff0c;与罐罐茶结下了不解情缘&#xff0c;下面我就跟大家分享一下刘一哥与罐罐茶的故事吧。 久违的罐罐茶.mp4美丽邂逅 我最早接触罐罐茶应该是90年代&#xff0c;那个年代家里条件很不好&…

【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作

目录 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡 【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照 【iV…

将WebApiTestClient添加到ASP.NET Web API帮助页面

ASP.NET Web API帮助页面是一种有用的扩展&#xff0c;可为您的Web API自动生成基于Web的文档。它使调试变得更容易&#xff0c;因为您可以将帮助页面中的信息复制/粘贴到Fiddler等工具中&#xff0c;以调用Web API服务并检查响应。现在&#xff0c;如果您可以直接在帮助页面上…

【LeetCode】3. Longest Substring Without Repeating Characters

题目&#xff1a; Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with t…

Android之判断时间戳是不是今天

1 需求 判断时间戳是不是今天 2、工具代码 /*** 获取每日0点时间* @return*/fun getTodayTime(timeStamp: Long): Long {val cal = Calendar.getInstance()cal.timeInMillis = timeStampcal.set(Calendar.HOUR_OF_DAY, 0)cal.set(Calendar.SECOND, 0)cal.set(Calendar.MINUTE,…

ArcGIS实验教程——实验二十五:大型商场选址经典案例

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验分析 合理的商场位置有利于商家营业,方便人们购物。商场选址问题需要考虑很多因素,如地理位置、居民点分布、停车场分布、交通情况等。综合把握这些影响因素对商场的选址显得尤为重要。 …

全球域名商解析新增保有量15强:爱名网落榜

IDC评述网&#xff08;idcps.com&#xff09;11月30日报道&#xff1a;根据DailyChanges公布的最新数据显示&#xff0c;在2015年11月26日&#xff0c;全球域名解析新增保有量15强排行榜上&#xff0c;共有5家中国域名商。其中&#xff0c;易名中国连续夺冠&#xff0c;新增保有…

大话领域驱动设计——应用层

‍概述应用层是基于领域的应⽤程序用例的实现&#xff0c;应⽤程序⽤例可以看作是⽤户界⾯上的⽤户交互。这一篇&#xff0c;我将详细讲解应用层组件及用法。总览应用层包含以下组件&#xff1a;数据传输对象&#xff08;DTO)&#xff1a;数据传输对象是一个简单的对象&#xf…

IE8采用IE7模式

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> X-UA-Compatible是针对ie8新加的一个设置&#xff0c;对于ie8之外的浏览器是不识别的&#xff0c;这个区别与 content"IE7"在无论页面是否包含<!DOCTYPE>指令&#…

【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡

目录 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡 【iVX 初级工程师培训教程 10篇文拿证】02 数值绑定及自适应网站制作 【iVX 初级工程师培训教程 10篇文拿证】03 事件及猜数字小游戏 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照 【iV…

ArcGIS实验教程——实验二十六:ArcScene实现二维数据的三维显示

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 DEM三维显示: 地形数据+影像数据: 以上效果均是在ArcScene中实现的。 ArcScene允许用户制作具有透明效果的场景,在场景中能对数据进行浏览和交互。ArcAcene支持复杂的3D符号系统及纹理制图,支…

用Swashbuckle(swagger-ui)显示API帮助并进行调试

安装Swashbuckle&#xff1a; 打开NuGet控制台输入&#xff1a; Install-Package Swashbuckle 进行安装。查看帮助 在浏览器输入 http://调试项目地址/swagger/ui/index 可以看到帮助的效果API调试 点开调试的条目&#xff0c;填写相关参数&#xff0c;“Try it out!”

Android之Fatal Exception: org.greenrobot.greendao.DaoException: Could not init DAOConfig

1 问题 release apk运行奔溃提示错误如下 Fatal Exception: org.greenrobot.greendao.DaoException: Could not init DAOConfigat org.greenrobot.greendao.h.a.<init>(DaoConfig.java:28)at org.greenrobot.greendao.b.a(AbstractDaoMaster.java:1) 2 解决办法 progu…

Linux两块磁盘挂载指向一个文件夹LVM磁盘管理(一)

注意&#xff1a;任何磁盘的操作有可能损坏里面数据&#xff0c;请提前备份数据&#xff0c;切记&#xff01;切记&#xff01;切记&#xff01; 0x00&#xff1a;前言. 在Linux使用过程中&#xff0c;发现一个文件很大&#xff0c;比如5G&#xff0c;但是有两块物理磁盘一个剩…

AOL search

AOL: American On Line转载于:https://www.cnblogs.com/sophia194910/p/5006466.html

盘点现有开源软件许可合规工具

&#xff5c;原文出处&#xff1a;The Openchain Reference Tooling Work Group&#xff5c;翻译&#xff1a;刘天栋.Ted&#xff0c;开源社.ONES&#xff08;开源战略研究组&#xff09;&#xff5c;编辑&#xff1a;胡湘月&#xff5c;设计&#xff1a;周颖引言开源软件已经吞…

centos 7.4 docker

centos 7.4 docker 1.查看系统版本 cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)哈1 cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 哈1-02 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 哈1-22 cat /etc/redhat…

2016-08-29

已完成&#xff1a; 1. 监督PHP后台完成学校部分接口 4. 评审添加孩子1 5. 评审安全上网 6. 评审答题器学生端 7. 认证方案初步 8. 安全网址方案初步&#xff1a;数据库搜索模式 9. 评审学习窗1 10. 评审学习窗2 11. 评审添加孩子2 12. 答题器研发启动会议 14. Log相关数据库设…

【前端就业课 第一阶段】HTML5 零基础到实战(十一)canvas 基础

注意&#xff1a;手机&#xff08;APP&#xff09;打开&#xff0c;内容显示更佳&#xff0c;不会的私聊博主即可 想要拿代码或加入学习计划&#xff08;** 博主会监督你并且教你写文章 **&#xff09;的拉到最下面&#xff08;PC端Web打开&#xff09;加博主即可&#xff0c;目…