1. 为什么要有操做系统?程序员
操做系统就是一个协调、管理和控制计算机资源和软件资源的控制程序算法
电脑是由硬件和软件组成的,缺了任何同样都没法运行。咱们对电脑进行操做,都是利用操做系统来完成。最初的电脑没有操做系统,人们经过各类操做按钮来控制计算机,后来出现了汇编语言,并将它的编译器内置到电脑中,操做人员经过有孔的纸带将程序输入电 脑进行编译。这些将语言内置的电脑只能由操做人员本身编写程序来运行,不利于设备、程序的共用。为了解决这种问题,就出现了操做系统,这样就很好实现了程序的共用,以及对计算机硬件资源的管理,令人们能够从更高层次对电脑进行操做,而不用关心其底层 的运做。 操做系统是现代电脑必不可少的系统软件,是电脑的灵魂所在。现代的电脑都是经过操做系统来解释人们的命令,从而达到控制电脑的目的。几乎全部的应用程序也是基于操做系统的。编程
2. 操做系统的位置windows
windows中操做系统位于操做系统的主分区C盘浏览器
Linux中操做系统位于/boot下服务器
操做系统位于计算机硬件与应用软件之间,本质也是一个软件。操做系统由操做系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,因此,单纯的说操做系统是运行于内核态的,是 不许确的。网络
3. 操做系统的功能并发
操做系统的两大部分:tcp
内核:工做在内核态,直接控制操做硬件学习
系统调用接口:工做在用户态,应用程序经过调用接口请求控制基层硬件
操做系统的功能主要体如今对计算机资源――微处理器、存储器、外部设备、文件和做业五大计算机资源的管理,操做系统将这种管理功能分别设置成相应的程序管理模块,每一个管理模块分管必定的功能。即操做系统的五大功能。
操做系统的微处理器管理功能、内存管理功能、外部设备管理功能、文件管理功能和进程管理功能简称操做系统的五大功能。这五大功能是较完整的操做系统的共性。
4. 操做系统的发展
第一代计算机(1940-1955):真空管和穿孔卡片 汇编语言编程二进制,无操做系统,直接控制硬件,程序有问题可自行调试程序。
缺点:单人使用制
第二代计算机(1955~1965):晶体管和批处理系统
优势:批处理,节省了机时
缺点:
1.整个流程须要人参与控制,将磁带搬来搬去(中间俩小人)
2.计算的过程仍然是顺序计算-》串行
3.程序员原来独享一段时间的计算机,如今必须被统一规划到一批做业中,等待结果和从新调试的过程都须要等同批次的其余程序都运做完才能够(这极大的影响了程序的开发效率,没法及时调试程序)
第三代计算机(1965~1980):集成电路芯片和多道程序设计
分时操做系统:
多个联机终端+多道技术
20个客户端同时加载到内存,有17在思考,3个在运行,cpu就采用多道的方式处理内存中的这3个程序,因为客户提交的通常都是简短的指令并且不多有耗时长的,索引计算机可以为许多用户提供快速的交互式服务,全部的用户都觉得本身独享了计算机资源
第四代计算机(1980~至今):我的计算机
5. 多道技术
多路复用有两种实现方式
1.时间上的复用
当一个资源在时间上复用时,不一样的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。
例如:只有一个cpu,多个程序须要在该cpu上运行,操做系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操做系统的算法说了算)或者遇到了I/O阻塞,操做系统则把cpu分配给下一个程序,以此类推,直到第一个程序从新被分配到了cpu 而后再次运行,因为cpu的切换速度很快,给用户的感受就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务须要运行多长时间,这些都是操做系统的工做。
2.空间上的复用
每一个客户都获取了一个大的资源中的一小部分资源,从而减小了排队等待资源的时间。
例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操做系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。
有关空间复用的其余资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间而且记录谁正在使用哪一个磁盘块是操做系统资源管理的典型任务。
6. 什么是互联网协议
互联网协议(IP)特指为实如今一个相互链接的网络系统上从一个源到一个目的地传输比特数据包(互联网数据包)所提供必要功能的协议。其中并无增长端到端数据可靠性机制、流量控制机制、排序机制或者其它在端到端协议常见的功能机制。互联网协议可在其 支持的网络上提供相应服务,实现多种类型和品质的服务
互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通讯的标准。
7. Osi七层协议
Tcp/ip 协议
1.物理层:
主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
基于网线,无线电波
2.数据链路层:
有了mac地址,同一网络内的两台主机就能够通讯了
早期的时候各个公司都有本身的分组方式,后来造成了统一的标准,即以太网协议ethernet
ethernet规定
一组电信号构成一个数据包,叫作‘帧’
每一数据帧分红:报头head和数据data两部分
head包含:(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型,6个字节
data包含:(最短46字节,最长1500字节)
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
3.网络层:
这层对端到端的包传输进行定义,它定义了可以标识全部结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
4.传输层:
网络层的ip帮咱们区分子网,以太网层的mac帮咱们找到主机,而后你们使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
那么咱们经过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:创建端口到端口的通讯
补充:端口范围0-65535,0-1023为系统占用端口
tcp协议:
可靠传输,TCP数据包没有长度限制,理论上能够无限长,可是为了保证网络的效率,一般TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包没必要再分割。
5.应用层:
应用层由来:用户使用的都是应用程序,均工做于应用层,互联网是开发的,你们均可以开发本身的应用程序,数据多种多样,必须规定好数据的组织形式
应用层功能:规定应用程序的数据格式。
8. 用户上网流程:
客户端打开浏览器,想要访问百度,在地址栏输入了网址:www.baidu.com
在本地的DNS服务器访问,基于udp协议,本地访问不到时访问国外服务器(速度慢)
通过多个网关的转发,百度的服务器收到了这四个以太网数据包。
根据IP标头的序号,百度将四个包拼起来,取出完整的TCP数据包,而后读出里面的”HTTP请求”,接着作出”HTTP响应”,再用TCP协议发回来。
本机收到HTTP响应之后,就能够将网页显示出来,完成一次网络通讯。