嵌入式 笔试题(第一天)

来源:互联网 发布:广讯通软件下载 编辑:程序博客网 时间:2024/06/05 10:52

1.什么是中断?中断发生时cpu做什么工作?

2.cpu在上电后,进入操作系统的main()之前必须做什么工作?

3.简述iso osi的物理层layer1,链路层layer2,网络层layer3的任务.

4.输入一个字符串,输出该字符串中对称的子字符串的最大长度.

比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。


答:



1.所谓中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。硬件的中断机构与处理这些中断的程序统称为中断系统。
当中断发生时,硬件机构自动地进入响应中断过程,由操作系统的中断处理程序对中断事件进行处理,具体过程如下:
①•保存现场
系统开辟现场区,并将现场区组织成"栈"结构,当中断响应时,(1)硬件结构自动将PS和PC寄存器的内容压人栈中作为现场信息保存起来。(2)根据发生的中断,硬件从指定的中断向量单元中取出PS和PC内容,分别装人PS和PC寄存器,同时正确填人路寄存器的"当前状态"和"先前状态"字段。
②•分析原因,转中断处理程序
不同原因产生的中断事件要进行不同的处理,根据中断的路寄存器内容得出发生该种中断的具体原因。转人相对应的申断处理程序运行。
③•恢复现场
在多级中断系统中,考虑退回当前中断时,必须依据原先被中断的程序,完成不同的工作,中断处理结柬后,软件必须退出中断。如果此次是高级中断,并且被中断的程序是一个低级中断处理程序,则此次中断应返回到该低级中断处理程序。如果原来被中断的是用户程序,则退出中断前应先考虑进行一次调度选择,以挑选出更适合在当前情况下运行的新程序。

2.整个系统对开发环境以及各种变量的初始化,包括了变量空间的分配,cpu内部寄存器的初始化,总线的初始化等等,总之,只有等系统初始化完成以后,我们的c语言的main才能被识别和执行下来。

3.

物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间
  的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。
  a.媒体和互连设备
  物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。通信用的互连设备指DTE和DCE
  间的互连设备。DTE既数据终端设备,又称物理设备,如计算机、终端等都包括在内。而DCE则
  是数据通信设备或电路连接设备,如调制解调器等。数据传输通常是经过DTE──DCE,再经过
  DCE──DTE的路径。互连设备指将DTE、DCE连接起来的装置,如各种插头、插座。
  LAN中的各种粗、细同轴电缆、T型接、插头,接收器,发送器,中继器等都属物理层的媒体
  和连接器。
  b.物理层的主要功能
  ⑴为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒
  体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是
  不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路.
  ⑵ 传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能
  在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信
  道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或
  异步传输的需要.
  ⑶ 完成物理层的一些管理工作.
  c.物理层的一些重要标准
  物理层的一些标准和协议早在OSI/TC97/C16 分技术委员会成立之前就已制定并在应用了,
  OSI也制定了一些标准并采用了一些已有的成果.下面将一些重要的标准列出,以便读者查阅.
  ISO2110:称为"数据通信----25芯DTE/DCE接口连接器和插针分配".它与EIA(美国电子工业
  协会)的"RS-232-C"基本兼容.
  ISO2593:称为"数据通信----34芯DTE/DCE----接口连接器和插针分配".
  ISO4092:称为"数据通信----37芯DTE/DEC----接口连接器和插针分配".与EIARS-449兼容.
  CCITT V.24:称为"数据终端设备(DTE)和数据电路终接设备之间的接口电路定义表".其功
  能与EIARS-232-C及RS-449兼容于100序列线上

 

  数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其
  连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数
  据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就
  叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补
  物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,
  拆除,对数据的检错,纠错是数据链路层的基本任务.
  ⑴链路层的主要功能
  链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应
  具备如下功能:
  ① 链路连接的建立,拆除,分离.
  ② 帧定界和帧同步.链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但
  无论如何必须对帧进行定界.
  ③ 顺序控制,指对帧的收发顺序的控制.
  ④ 差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校
  验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发
  技术来完成.
  ⑵数据链路层的主要协议
  数据链路层协议是为发对等实体间保持一致而制定的,也为了顺利完成对网络层的服务。主
  要协议如下:
  a. ISO1745--1975:"数据通信系统的基本型控制规程".这是一种面向字符的标准,利用10
  个控制字符完成链路的建立,拆除及数据交换.对帧的收发情况及差错恢复也是靠这些
  字符来完成.ISO1155, ISO1177, ISO2626, ISO2629等标准的配合使用可形成多种链路
  控制和数据传输方式.
  b. ISO3309--1984:称为"HDLC 帧结构".ISO4335--1984:称为"HDLC 规程要素 ".
  ISO7809--1984:称为"HDLC 规程类型汇编".这3个标准都是为面向比特的数据传输控制
  而制定的.有人习惯上把这3个标准组合称为高级链路控制规程.
  c. ISO7776:称为"DTE数据链路层规程".与CCITT X.25LAB"平衡型链路访问规程"相兼容.
  ⑶链路层产品
  独立的链路产品中最常见的当属网卡,网桥也是链路产品。MODEM的某些功能有人认为属于链
  路层,对些还有争议.
  数据链路层将本质上不可靠的传输媒体变成可靠的传输通路提供给网络层。在IEEE802.3情况
  下,数据链路层分成了两个子层,一个是逻辑链路控制,另一个是媒体访问控制

 

   网络层的产生也是网络发展的结果.在联机系统和线路交换的环境中,网络层的功能没有太大意义.当数据终端增多时.它们之间有中继设备相连.此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径.另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉.人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术.

⑴网络层主要功能

网络层为建立网络连接和为上层提供服务,应具备以下主要功能.

1). 路由选择和中继.

2). 激活,终止网络连接.

3). 在一条数据链路上复用多条网络连接,多采取分时复用技术.

4). 差错检测

5). 排序,流量控制.

6). 服务选择.

7). 网络层管理.

8).分段和合段

9).流量控制

10).加速数据传送

11).复位



⑵网络层标准简介

网络层的一些主要标准如下.

ISO.DIS8208:称为"DTE用的X.25分组级协议".

ISO.DIS8348:称为"CO 网络服务定义"(面向连接).

ISO.DIS8349:称为"CL 网络服务定义"(面向无连接).

ISO.DIS8473:称为"CL 网络协议".

ISO.DIS8348:称为"网络层寻址".

除上述标准外,还有许多标准。这些标准都只是解决网络层的部分功能,所以往往需要在网络

层中同时使用几个标准才能完成整个网络层的功能.由于面对的网络不同,网络层将会采用不同的

标准组合.

在具有开放特性的网络中的数据终端设备,都要配置网络层的功能.现在市场上销售的网络硬

设备主要有网关和路由器.

1. 网络层功能概述
  网络层是OSI参考模型中的第三层,是通信子网的最高层。网络层关系到通信子网的运行控制,体现了网络应用环境中资源子网访问通信子网的方式。
  网络层的主要任务是设法将源结点出的数据包传送到目的结点,从而向运输层提供最基本的端到端的数据传送服务。概括地说,网络层应该具有以下功能:
  (1) 为传输层提供服务
  网络层提供的服务有两类:面向连接的网络服务和无连接的网络服务。
  虚电路服务是网络层向运输层提供的一种使所有数据包按顺序到达目的结点的可靠的数据传送方式,进行数据交换的两个结点之间存在着一条为它们服务的虚电路;而数据报服务是不可靠的数据传送方式,源结点发送的每个数据包都要附加地址、序号等信息,目的结点收到的数据包不一定按序到达,还可能出现数据包的丢失现象。
  典型的网络层协议是X.25,它是由ITU-T(国际电信联盟电信标准部)提出的一种面向连接的分组交换协议。
  (2) 组包和拆包
  在网络层,数据传输的基本单位是数据包(也称为分组)。在发送方,传输层的报文到达网络层时被分为多个数据块,在这些数据块的头部和尾部加上一些相关控制信息后,即组成了数据包(组包)。数据包的头部包含源结点和目标结点的网络地址(逻辑地址)。在接收方,数据从低层到达网络层时,要将各数据包原来加上的包头和包尾等控制信息去掉(拆包),然后组合成报文,送给传输层。
  (3) 路由选择
  路由选择也叫做路径选择,是根据一定的原则和路由选择算法在多结点的通信子网中选择一条最佳路径。确定路由选择的策略称为路由算法。
在数据报方式中,网络结点要为每个数据包做出路由选择;而在虚电路方式中,只需在建立连接时确定路由。
  (4) 流量控制
  流量控制的作用是控制阻塞,避免死锁。
  网络的吞吐量(数据包数量/秒)与通信子网负荷(即通信子网中正在传输的数据包数量)有着密切的关系。
  对防止出现阻赛和死锁,需进行流量控制,通常可采用滑动窗口、预约缓冲区、许可证和分组丢弃四种方法。
  
2. 路由选择算法简介
  路由算法很多,大致可分为静态路由算法和动态路由算法两类。
  (1) 静态路由算法
  静态路由算法又称为非自适应算法,是按某种固定规则进行的路由选择。其特点是算法简单、容易实现,但效率和性能较差。属于静态路由算法的有以下几种:
   ☆ 最短路由选择:
   ☆ 扩散式路由选择:
   ☆ 随机路由选择:
   ☆ 集中路由选择:
  (2) 动态路由算法
  动态路由算法又称为自适应算法,是一种依靠网络的当前状态信息来决定路由的策略。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能;但算法复杂,实现开销大。属于动态路由算法的有以下几种:
   ☆ 分布式路由选择策略:
   ☆ 集中路由选择策略:
3. 网络层的网络连接设备
  (1) 路由器(Router)
  在互联网中,两台主机之间传送数据的通路会有很多条,数据包从一台主机出发,中途要经过多个站点才能到达另一台主机。这些中间站点通常由称为路由器的设备担当,其作用就是为数据包选择一条合适的传送路径。

  路由器工作在OSI模型的网络层,是根据数据包中的逻辑地址(网络地址)而不是MAC地址来转发数据包的。
  路由器的主要工作是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点。
  路由器不仅有网桥的全部功能,还具有路径的选择功能,可根据网络的拥塞程度,自动选择适当的路径传送数据。
  路由器与网桥不同之处在于,它并不是使用路由表来找到其他网络中指定设备的地址,而是依靠其它的路由器来完成任务。也就是说,网桥是根据路由表来转发或过滤数据包,而路由器是使用它的信息来为每一个数据包选择最佳路径。
路由器有静态和动态之分。静态路由器需要管理员来修改所有的网络路由表,一般只用于小型的网间互连;而动态路由器能根据指定的路由协议来完成修改路由器信息。
  (2) 第三层交换机
随着技术的发展,有些交换机也具备了路由的功能。这些具有路由功能的交换机要在网络层对数据包进行操作,因此被称为第三层交换机。

4.

#include <stdio.h>#include <string.h>int func(char *s){int len = strlen(s);int i,j,m,temp;int count = 1;int number = 1;for(i=0;i<len-count;i++){temp = 1;for(j = i+1;j<len;j++){if(s[i]==s[j]){for(m = 0;m<(j-i-1)/2;m++){if(s[i+1+m] != s[j-1-m]){temp = 0;break;}}if(temp){number = j-i+1;if(number > count)count = number;}}}}return count;}int main(){char *s = "sssgoogs";        printf("%s:%d\n",s,func(s));return 0;}



原创粉丝点击