OS与Internet

1 操作系统

操作系统Operating System,简称OS)是管理和控制计算机硬件软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

操作系统是用户计算机接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。

让计算机使用者更直接方便的操作计算机来实现工作

2

介于应用软件和计算机硬件之间,为用户提供接口程序来方便应用来操作电脑

将各个程序之间资源的占用的竞争梳理的有序化

3区别

主要区别是:你不想用暴风影音了你可以选择用迅雷播放器或者干脆自己写一个,但是你无法写一个属于操作系统一部分的程序(时钟中断处理程序),操作系统由硬件保护,不能被用户修改。

操作系统与用户程序的差异并不在于二者所处的地位。特别地,操作系统是一个大型、复杂、长寿的软件,

  • 大型:linux或windows的源代码有五百万行数量级。按照每页50行共1000行的书来算,五百万行要有100卷,要用一整个书架子来摆置,这还仅仅是内核部分。用户程序,如GUI,库以及基本应用软件(如windows Explorer等),很容易就能达到这个数量的10倍或者20倍之多。
  • 长寿:操作系统很难编写,如此大的代码量,一旦完成,操作系统所有者便不会轻易扔掉,再写一个。而是在原有的基础上进行改进。(基本上可以把windows95/98/Me看出一个操作系统,而windows NT/2000/XP/Vista则是两位一个操作系统,对于用户来说它们十分相似。还有UNIX以及它的变体和克隆版本也演化了多年,如System V版,Solaris以及FreeBSD等都是Unix的原始版,不过尽管linux非常依照UNIX模式而仿制,并且与UNIX高度兼容,但是linux具有全新的代码基础

软件运行在操作系统之上,操作系统和硬件的关系密切,和应用软件开发不是一条路

4 操作系统发展史

百度百科-操作系统的发展史

http://baike.baidu.com/link?url=12wJqRKEBD0tXC07ltfKmonr1O4s64FbmhRgFjWi0IOWvPQmaawIHRxqwpEoEqjiRZ7Bmrxpzc53qBHEXwo_tyPVF3K2w3Y30V-s850S77IKl_6_BQ6Ule6MJrpy-gjViIxkwAcDYtvDZzXtcksSShyVOcxciTKB4GrcQEfH42_

峰哥博客-操作系统发展史

http://www.cnblogs.com/linhaifeng/p/6295875.html

资源占用,穿孔卡片,统筹时间,空间/时间复用,技术发展

5 多道技术

现代计算机或者网络都是多用户的,多个用户不仅共享硬件,而且共享文件,数据库等信息,共享意味着冲突和无序。

操作系统主要使用来

1.记录哪个程序使用什么资源

2.对资源请求进行分配

3.为不同的程序和用户调解互相冲突的资源请求。

我们可将上述操作系统的功能总结为:处理来自多个程序发起的多个(多个即多路)共享(共享即复用)资源的请求,简称多路复用

多路复用有两种实现方式

1.时间上的复用

当一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。

例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。

2.空间上的复用

每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。

例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。

有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。

这两种方式合起来便是多道技术

附加:多道程序设计技术

多道程序设计技术是指在内存同时放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。

[特点]:多道、宏观上并行(不同的作业分别在CPU和外设上执行)、微观上串行(在单CPU上交叉运行)。

[多道批处理系统]:将多道程序设计技术应用于批处理系统,就形成多道批处理系统。

多道程序设计技术 对 操作系统的形成起到的作用:

操作系统在引入多道程序设计技术后,使得系统具有了多道,宏观上并行,微观上串行的特点。

多道程序设计主要是使OS能更好地对计算机进行管理 。

使计算机的硬件资源得到更充分的利用 。

在OS中引入多道程序设计技术带来的好处:

1.提高CPU的利用率

2.提高内存和I/O设备利用率

3.增加系统吞吐量

二 网络基础

单台计算机的软件,操作系统,硬件,单个计算,为了实现计算机之间的通信需求,就想工作中人与人之间的交流,计算机也需要通信,这样就有个语言的需求

对于人类公认的通用语言设定是 English ,那计算机之间的通用语言就是Internet协议

附加:Internet协议知识 - 百度百科

http://baike.baidu.com/link?url=pDs1EnUJ7V5MRRJNKJaoWjFqqLpfFE0ok82sfRaFHIC4taEaEL1WQgKfNHx4DQ_VnrXSUrwyXnjwl0wAvG4Mzq

物理层:010101010电压,光纤,电缆,双绞线,电流

数据链路层:比特流,封装mac地址在头部,为计算机局域网内基本通信,以太网交换机,网卡,mac地址为唯一标示,类似于身份证号码,出生既有,独一无二

网络层:packet包,ip地址,相当于身份证上的姓名,ip协议,arp协议,ip地址子网掩码来区分是否在同一网段,ip地址详细知识略,数据包内有ip地址头部,后有数据,路由器,或者路由功能的多层交换机

传输层:建立端口和应用程序之间的通信,tcp或udp协议,tcp稳定可靠建立联系后传输数据,udp速度快但不稳定数据传输不需要双方在线,每个端口都有各自用途,系统端口占用,用户可以自定义,端口号只有整数,范围是从0 到65535(2^16-1)。

应用层:用户的各自应用程序均工作于应用层,开发应用软件,写到操作系统和传输层提供的端口,例如http,ftp等就是应用层协议,可以自定,可以用现成的协议

附加:OSI七层网络协议 - 百度百科

http://baike.baidu.com/link?url=uT2_blqKUkezi2KUg7FmaamZhvo_x8kos6HJSC1eXZAajB2Ue-DivPDMl6HzXKOKARq1ogofU4BGySVbsgkaH4HsBv_uF6rC4fdd54KlhgWH9CjOjX7nSUHvSxDtKcpmCNlPT-ZGdfbmHazbWT4sbq

socket

我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。

能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

网络通信


本机ip地址,子网掩码,网关ip地址,dns地址

根OSI模型一层一层的走,数据在应用层开始,经过层层封装,各层都把自己的标示封装在数据头部,然后在物理层转化为高低电流,然后经过现实世界的物理介质传输,到目标地址后经数据链路层转化为比特流,再将数据包层层解包,最后根据数据各个头部的指引信息,将拆出来的数据传给目的地,呈现数据

实际上整个行为很复杂,涉及协议多,涉及安全性也要考虑

附加: 数据包转发演示

https://wenku.baidu.com/view/7db7ddfd783e0912a3162a32.html

附加:DNS过程

时间: 2024-10-06 20:26:35

OS与Internet的相关文章

Python教程大纲

缘起:最近想在部门推Python语言,写这个blog主要就是个教程大纲,之前先列出一些资源:Python历史:http://www.docin.com/p-53019548.html                   :http://blog.csdn.net/zhchongyao/article/details/7748668 Python中文社区主站入口:http://woodpecker.org.cn/Python简明教程:http://woodpecker.org.cn/abyteof

asp网络编程:创建移动Web应用程序

介绍 现今移动设备已成为我们生活中的一部分,我们当中的许多人已离不开它们.当这些移动设备连接到Internet时,移动设备的力量将无穷无尽.我们可以在任何时间地点给用户发送数据.典型的移动应用程序是在服务器上使用WML, WMLScript和WBMP开发的. 对于动态WML应用程序,开发者可以使用ASP, JSP, PHP等等.移动设备包括蜂窝电话.寻呼机.掌中浏览器.袖珍PC和车载PC.这些设备中少数支持WML,少数支持HTML,更少数支持同时支持WML和HTML.如果你想确保你的应用程序能在

什么是ICE (Internet Communications Engine)

http://user.qzone.qq.com/77811970 直接在google上搜索ICE,出来的结果并不多,所以很多人就认为ICE是个神秘的东西,其实,国内已经有很多大型应用在使用ICE了.前段时间因为工作的关系被逼学习了ICE, 感觉不错的东西.我记录下入门的一些概念,希望对后来的学习者有所帮助.     什么是ICE  (Internet Communications Engine) 首先,ICE是一个中间件(如果不懂什么是中间件,请先G一下),该中间件的目的是为上层应用提供高效的

集成自动化的条形码功能到internet应用程序,网站或自定义Java应用程序的条码控件Java Barcode Package

Java Barcode Package控件是一款条码生成控件,包含所有的JavaBean,Applets,Servlets和类库可以使用于装有Java虚拟机的任何平台,包括Windows?, Linux, MacOS, Unix, Solaris, HP/UX, AS/400 和OS/390,用于集成自动化的条形码功能到internet应用程序,网站或自定义Java应用程序. 具体功能: 可在任何装有Java虚拟机的操作系统上生成条形码. 此产品的开发者授权是永久的且免收版权费用的. 支持ID

在 Yosemite 装 Jave 的方法. ( 适用于 OS X 10.10 )

因为并非所有用户都用得着 Java ,所以在默认状态下 OS X 不预装 Java , 如果你需要的话可以手动安装. 1. http://support.apple.com/kb/DL1572到苹果官网下载.http://support.apple.com/downloads/DL1572/en_US/JavaForOSX2014-001.dmg 2.http://www.oracle.com/technetwor ... ownloads/index.html到 Oracle 下载最新版的 J

解决 Mac OS X 10.11 安装 sip 没有权限的问题

在搭建 PYQT 的过程中我遇上了一个非常恶心的问题,在安装 sip 的时候编译源码之后的安装过程中一直提示我:Operation not permitted ,我甚至重装了系统也无济于事,最终通过查资料解决了问题. 安装 sip 下载 sip 源码包解压之后进入它的目录下: python configure.py sudo make sudo make install 这时出现了一个很恶心的报错提示: cp -f sip /System/Library/Frameworks/Python.fr

在 Cent OS 6.5 中安装桌面环境

在 Cent OS 6.5 中,安装桌面环境,需要安装以下组 yum groupinstall -y   "Desktop"   "Desktop Platform"   "Desktop Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graph

DB Query Analyzer 6.03, the most excellent Universal DB Access tools on any Microsoft Windows OS

?  ?DB Query Analyzer 6.03, the most excellent Universal database Access tools on any Microsoft Windows OS DB Query Analyzer is presented by Master Genfeng, Ma from Chinese Mainland. It has English version named 'DB Query Analyzer' and Simplified Chi

Android开发 - 使用Internet资源

连接Internet资源 首先需要在应用程序清单中添加一个INTERNET uses-permission节点. <uses-permission android:name="android.permission.INTERNET"/> 打开Internet数据流 String myFeed = getString(R.String.myFeed); URL url = new URL(quakeFeed); URLConnection connection = url.o