2024年1月15日发(作者:)

一. 1 什么是操作系统?

操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从手机的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面,而将GUI视为一种非必要的应用程序。

维基:操作系统(英文:Operating System,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从手机的嵌入式系统到超级电脑的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面(GUI),而有些仅使用命令行界面(CLI),而将GUI视为一种非必要的应用程序。换句话说,操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。

一 .2操作系统对于计算机系统的重要性

1.管理系统中的各种资源,包括硬件资源和软件资源。

在计算机系统中,所有硬件部件(如CPU、存储器、输入/输出设备等)称为硬件资源;而程序和数据等信息称为软件资源。

操作系统对每一种资源的管理都必须进行以下几项工作:

1)监视资源

监视资源包括需要知道该资源有多少,资源的状态如何,它们都在哪里,谁在使用,可供分配的又有多少,资源的使用历史等等。

2)决定分配资源策略

包括选择某种资源分配策略,决定谁有权限可以获得这种资源,何时可以获得,可以获得多少,如何退回资源等等。

3)分配资源

分配资源是指按照已决定的资源分配策略,对符合条件的申请者分配某种资源,并进行相应的管理事务处理。

4)回收资源

回收资源是指在使用者放弃某种资源之后,对该种资源进行善后处理,如果是可重复使用的资源,则进行回收、整理,以备再次使用。

2.为用户提供友好的界面。

操作系统必须为最终用户和系统用户的各种工作提供友好的界面,以方便用户的工作。典型的操作系统界面有两类:

1)命令行界面

如Unix和MS-DOS操作系统,在这种操作系统环境下,用户通过键盘输入完成某种工作的命令,操作系统分析命令的正确性,然后执行命令并返回执行结果。

2)图形化界面

如MS Windows操作系统,在其提供的图形化界面环境下,用户可通过鼠标左单击某个按钮或选择某个菜单来完成相应的命令。

二.操作系统的主要功能:

从资源管理的角度来分析,操作系统的主要功能就是存储管理,处理机管理,设备管理,文件管理和用户界面。

三.死锁的概念:处理机管理

死锁(英语:Deadlock),又译为死锁,计算机科学名词。当两个以上的运算单元,双方都在等待对方停止运行,以取得系统资源,但是没有一方提前退出时,这种状况,就称为死锁。在多任务操作系统中,操作系统为了协调不同进程,能否取得系统资源时,为了让系统运作,就必须要解决这个问题。

这里指的是进程死锁,是个计算机技术名词。它是操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁。

进程饿死 :在计算机操作系统中,一些进程需要一些资源才能运行,但这些资源被其他进程所占用,该进程始终得不到所需要的资源,则会产生饿死。

四.程序,作业与进程三者之间的关系:

五.内存管理中分区调度与分页调度的区别:

六.Linux操作系统的特点:

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。

Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel

x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Windows系统:

Microsoft Windows,中文有译作微软视窗或微软窗口,[2][3]是微软公司推出的一系列操作系统。它问世于1985年,起初仅是MS-DOS之下的桌面环境[4],而后其后续版本逐渐发展成为个人电脑和服务器用户设计的操作系统,并最终获得了世界个人电脑操作系统软件的垄断地位[5]。视窗操作系统可以在几种不同类型的平台上运行,如个人电脑、服务器和嵌入式系统等等,其中在个人电脑的领域应用内最为普遍。在2004年,国际数据信息公司中一次有关未来发展趋势的会议上,副董事长Avneesh

Saxena宣布Windows拥有终端操作系统大约90%的市场份额[6]。

GNU项目:

GNU,名称来自Gnu's Not Unix"的缩写,一个类UNIX的操作系统,由GNU计划推动,目标在于创建一个完全兼容于UNIX的自由软件环境。发展GNU系统的计划,最早由理查德·斯托曼在1983年启动,它是自由软件基金会最早致力的目标。

自由软件与版权软件:

自由软件:

根据自由软件基金会的定义,自由软件(Free Software)是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。这方面的不受限制正是自由软件最重要的本质,与自由软件相对的是闭源软件(Proprietary Software)非自由软件,也常被称为私有软件、封闭软件(其定义与是否收取费用无关──自由软件不一定是免费软件)。自由软件受到选定的“自由软件授权协议”保护而发布(或是放置在公有领域),其发布以源代码为主,二进制档可有可无。自由软件的许可证类型主要有GPL许可证和BSD许可证两种。另外,自由软件也可以看作开源软件的一个子集。

自由软件赋予使用者四种自由:

自由之零:不论目的为何,有使用该软件的自由。

自由之一:有研究该软件如何运作的自由,并且得以修改该软件来符合使用者自身的需求。取得该软件之源码为达成此目的之前提。

自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲睦邻。

自由之三:有改善再利用该软件的自由,并且可以发表修订后的版本供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。

如果一软件的使用者具有上述四种权利,则该软件得以被称之为“自由软件”。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示她/他拥有自由软件所赋予的自由权利。

自由软件并不是没有著作权,自由软件并不使用封闭格式

版权软件:

软件版权属于知识产权的著作权范畴,具有知识产权的特征,即时间性,专有性和地域性。

七.TCP/IP协议分层模式:

TCP/IP成功的另一个因素在于对为数众多的低层协议的支持。这些低层协议对应OSI模型中的第一层(实体层)和第二层(数据链路层)。每层的所有协议几乎都有一半数量支持TCP/IP,例如:以太网(Ethernet)、令牌环(Token Ring)、光纤数据分布接口(FDDI)、端对端协议(PPP)、X.25、帧中继(Frame Relay)、ATM、Sonet、SDH等。整个通信网络的任务,可以划分成不同的功能区块,即所谓的层级(layer)。[1]用于互联网的协议可以比照TCP/IP参考模型进行分类。TCP/IP协议栈起始于第三层协议IP(网际协议)。所有这些协议都在相应的RFC文档中讨论及标准化。重要的协议在相应的RFC文档中均标记了状态:“必须”(required),“推荐”(recommended),“可选”(elective)。其他的协议还可能有“试验”(experimental)或“历史”(historic)的状态。”

应用层

(OSI

4

5到7层)

例如HTTP、FTP、DNS

(如BGP和RIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)

传输层

3

(OSI

4层)

例如TCP、UDP、RTP、SCTP

(如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)

网络互连对于TCP/IP来说这是因特网协议(IP)

(如ICMP和IGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的2

(OSI

一部分;ARP不运行在IP上)

3层)

网络接口层

例如以太网、Wi-Fi、MPLS等

1

(OSI

1和2层)

应用层:

该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。 应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。

一些特定的程序被认为运行在这个层上。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS(名称<-> IP地址寻找)以及许多其他协议。

一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。

在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个公开的端口号相联系。服务器应用程序的端口由互联网号码分配局(IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。应用软件通常也允许用户强制性地指定端口号作为运行参数。

连结外部的客户端程序通常使用系统分配的一个随机端口号。监听一个端口并且通过服务器将那个端口发送到应用的另外一个副本以建立对等连结(如IRC上的dcc文件传输)的应用也可以使用一个随机端口,但是应用程序通常允许定义一个特定的端口范围的规范以允许端口能够通过实现网络地址转换(NAT)的路由器映射到内部。

传输层:

传输层的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。

网络互连层[编辑]

正如最初所定义的,网络层解决在一个单一网络上传输数据包的问题。类似的协议有X.25和ARPANET的Host/IMP Protocol。

随着因特网思想的出现,在这个层上添加了附加的功能,也就是将数据从源网络传输到目的网络。这就牵涉到在网络组成的网上选择路径将数据包传输,也就是因特网。

在因特网协议组中,IP完成数据从源发送到目的的基本任务。IP能够承载多种不同的高层协议的数据;这些协议使用一个唯一的IP协议号进行标识。ICMP和IGMP分别是1和2。

一些IP承载的协议,如ICMP(用来发送关于IP发送的诊断信息)和IGMP(用来管理多播数据),它们位于IP层之上但是完成网络层的功能,这表明了因特网和OSI模型之间的不兼容性。

网络接口层:

网络接口层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。这将完成如添加报头准备发送、通过实体媒介实际发送这样一些数据链路功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。

然而,链路层并不经常这样简单。它也可能是一个虚拟专有网络(VPN)或者隧道,在这里从网络层来的包使用隧道协议和其他(或者同样的)协议组发送而不是发送到实体的接口上。VPN和隧道通常预先建好,并且它们有一些直接发送到实体接口所没有的特殊特点(例如,它可以加密经过它的数据)。由于现在链路“层”是一个完整的网络,这种协议组的递归使用可能引起混淆。但是它是一个实现常见复杂功能的一个优秀方法。(尽管需要注意预防一个已经封装并且经隧道发送下去的数据包进行再次地封装和发送)。

7 应用层

6 表示层

5 会话层

4 传输层

3 网络层

例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

例如XDR、ASN.1、SMB、AFP、NCP

例如ASAP、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets

例如TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL

例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25

2 数据链路层

例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1 实体层

例如线路、无线电、光纤

八.计算机网络协议进行分层描述:

因特网协议栈中的层:

人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。

另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议和生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。

九.图灵机:

一台图灵机是一个七元组是状态集合;

是输入字母表,其中不包含特殊的空白符;

为空白符;

是带字母表,其中是起始状态;

且;

是转移函数,其中表示读写头是向左移还是向右移;

,其中都是有限集合,且满足

是接受状态。图灵机开始的时候将输入符号串

是拒绝状态,且将以如下方式运作:

号格。 机器开始, 然后将读 从左到右依此填在纸带的第的读写头指向第0号格子, 处于状态子上, 其他格子保持空白(即填以空白符)。

为, 设运行后,按照转移函数所描述的规则进行计算。 例如,若当前机器的状态为,读写头所指的格子中的符号, 则机器进入新状态, 将读写头所指的格子中的符号改为写头向左移动一个格子。 若在某一时刻,读写头所指的是第0号格子, 但根据转移函数它下一步将继续向左移,这时它停在原地不动。 换句话说,读写头始终不移出纸带的左边界。 若在某个时刻进入了状态, 则它立刻停机并接受输入的字符串; 若在某个时刻, 则它立刻停机并拒绝输入的字符串。

注意,转移函数是一个部分函数, 换句话说对于某些,,

一个操作没有定义的情况, 机器将立刻停机

实现原理:

可能没有定义, 如果在运行中遇到下根据转移函数根据转移函数进入了状态图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:

在纸上写上或擦除某个符号;

把注意力从纸的一个位置移动到另一个位置;

而在每个阶段,人要决定下一步的动作,依赖于(a)此人当前所关注的纸上某个位置的符号和(b)此人当前思维的状态。

在某些模型中,纸带移动,而未用到的纸带真正是“空白”的。要进行的指令(q4)展示在扫描到方格之上(由Kleene(1952)p.375绘制)。

在某些模型中,读写头沿着固定的纸带移动。要进行的指令(q1)展示在读写头内。在这种模型中“空白”的纸带是全部为0的。有阴影的方格,包括读写头扫描到的空白,标记了1,1,B的那些方格,和读写头符号,构成了系统状态。(由Minsky (1967) p.121绘制)。

为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:

1. 一条无限长的纸带TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白。纸带上的格子从左到右依次被编号为0, 1,

2, ...,纸带的右端可以无限伸展。

2. 一个读写头HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。

3. 一套控制规则TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。

4. 一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题。

注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。