软件技术基础_ 操作系统的设备管理

合集下载

计算机软件技术基础知识点总结

计算机软件技术基础知识点总结

《计算机软件技术基础》第一章算法1.1算法的基本概念算法:指解题方案的准确而完整的描述算法的基本特征:能行性(算法中的每一个步骤必须能够实现;算法执行的结果要能够达到预期的目的)确定性(算法中的每一个步骤都必须是有明确定义的,不能摸棱两可,也不能有多义性)有穷性(算法必须能在执行有限个步骤之后终止)拥有足够的情报(算法执行的结果总是与输入的初始数据有关。

不同输入对应不同输出)算法:是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的、明确的,此顺序将在有限的次数下终止。

算法的基本要素:1.算法中对数据的运算和操作(算术运算、逻辑运算、关系运算、数据传输【赋值、输入、输出】)2.算法的控制结构(算法中各操作之间的执行顺序)1.2算法描述语言C语言描述和简单的算法描述语言(1)符号与表达式:符号主要用以表述变量名、数组名等(2)赋值语句(3)控制转移语句:无条件转移语句形式:GOTO 标号条件转移语句形式IF C THEN SIF C THEN S1ELSE S2(4)循环语句WHILE语句:WHILE C DO SFOR语句:FOR i=init TO limit BY step DO S(5)其他语句EXIT语句:退出某个循环,使控制转到包含EXIT语句的最内层的WHILE或FOR循环后面的一个语句去执行RETURN语句:结束算法的执行(允许使用用引号括起来的注释信息)READ(INPUT)和WRITE(PRINT/OUTPUT)语句:用于输入输出(6)算法中的注释总是用一对方括号【】括起来;复合语句用一对花括号{}括起来1.3算法设计基本方法1.列举法【例1.1】基本思想:根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的(通常解决“是否存在”“有多少种可能”类型问题)特点:算法比较简单,但列举情况较多时,工作量将很大寻找路径、查找、搜索等问题采用列举法有效2.归纳法基本思想:通过列举少量的特殊情况,经过分析,最后找出一般的关系3.递推法(数学例题)指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果(本质属于归纳法)4.递归基本思想:将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些简单的问题后,再沿着原来分解的逆过程逐步进行综合【例1.3】自己调用自己的过程称为递归调用过程递归分为直接递归:一个算法P显式地调用自己间接递归:算法P调用另一个算法Q,而算法Q又调用算法P5.减半递推技术(分治法)减半:将问题的规模减半,而问题的性质不变递推:重复“减半”的过程【例1.4】6.回溯法通过对问题的分析,找出一个解决问题的线索;然后沿着这个线索逐步试探。

第三章 计算机软件(详细知识点总结)

第三章 计算机软件(详细知识点总结)

第三章计算机软件一、计算机系统基本组成:硬件和软件(一)计算机软件:能指挥计算机完成特定任务的、以电子格式存储的程序、数据和相关文档。

(二)软件的功能都在硬件的支撑下实现,用硬件实现的功能可能由软件来部分实现。

二、软件(一)定义(ISO):包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作。

(二)组成:程序+(与程序相关的)数据和文档。

1.文档:程序开发、维护和使用所涉及的资料,如设计报告、维护手册和用户使用指南等2.程序是软件的主体,单独的数据和文档一般不认为是软件。

(三)特性:1.依附性:通常必须使用物理载体进行存储,依附于一定的硬件和软件环境运行2.不可见性:以二进位表示、无形的产品3.脆弱性:容易受到病毒入侵4.易复制性5.无磨损性(四)软件版权:1.定义:软件的作者享有拷贝、发布、修改等权利,用户购买软件只有使用权2.软件盗版:未获得版权所有者许可就复制和散发商品软件的行为3.相关法律法规:知识产权保护法、著作权法、专利法、计算机软件保护条例……(五)软件分类:1.按应用角度分:系统软件和应用软件1)系统软件:A.定义:管理系统资源、提供常用基本操作的软件B.特点:交互性(与计算机硬件系统)、通用性C.组成:a)基本输入/输出系统(BIOS)——最接近计算机硬件的系统软件b)操作系统i.DOS、Windows 95、Windows 98、WindowsMe、Windows NT 4.0、Windows 2000、WindowsXP、Windows 2003、Windows Vista、Windows 7ii.Unix:BSD、SRV4、SCO UNIX、AIX、Solaris、HP-UXiii.Linux:Red Hat、SuSE等c)程序设计语言处理系统(编译器):FORTRAN、BASIC、Visual Basic、Java、C、C++、LISP、PROLOG、MATLAB、ALGOL、PASCAL等d)数据库管理系统(DBMS):FoxPro、Microsoft Access、VFP、SQL Server、Oracle、DB2、SYBASE等e)实用程序:磁盘清理程序、磁盘碎片整理程序、杀毒软件、防火墙等2) 应用软件:A. 定义:为用户完成某项特定任务的软件B. 按应用软件的开发方式和适用范围,可分为:通用应用软件、定制应用软件a) 通用应用软件: b) 定制应用软件: i. 定义:按照不同领域用户的特定应用要求而专门设计开发的软件 ii. 举例:超市销售管理和市场预测系统、工厂的集成制造系统、大学教务管理系统、医院门诊挂号系统、酒店客房管理系统、民航售票系统3) 系统软件和应用软件的关系:应用软件以系统软件为基础(如:Powerpoint 以windows 为基础;Powerpoint 调用windows 的功能)2. 按软件权益如何处置分为:商品软件、共享软件、自由软件1) 软件许可证(License):允许用户购买一份软件而同时安装在约定的若干台计算机上使用 2) 自由软件A. 代表:TCP/IP 、LinuxB. 允许用户随便拷贝、修改其源代码和销售(六) 软件发展的历史:1. 第一阶段:个体工作方式2. 第二阶段:合作方式1) 标志:软件危机2) 软件危机产生原因:软件复杂程度提高、研制周期变长、正确性难以保证、可靠性问题突出(并非硬件软件不协调发展)3. 第三阶段:软件工程(用工程化的方法组织软件的开发)三、操作系统(一) 地位:计算机运行配置必不可少的底层系统软件 (二) 作用:1. 管理分配系统中的各种软硬件资源2. 为用户提供友善的人机界面1) 命令行界面2) 图形用户界面:采用图标(icon )来形象地表示系统中的文件、程序和设备等对象3. 为应用程序的开发和运行提供一个高效率的平台(开发和运行应用程序与运行的操作系统密切相关) 1) 裸机:只有硬件、没有软件的计算机。

软件技术基础知识点

软件技术基础知识点

软件技术基础知识点在当今数字化的时代,软件技术已经成为推动社会发展和创新的关键力量。

无论是我们日常使用的手机应用,还是企业运行的复杂系统,都离不开软件技术的支持。

接下来,让我们一起探索软件技术的一些基础知识点。

一、数据结构数据结构是软件技术中非常重要的概念。

它是指相互之间存在一种或多种特定关系的数据元素的集合。

常见的数据结构包括数组、链表、栈、队列、树和图等。

数组是一种最简单的数据结构,它是一组相同类型的元素按顺序存储在连续的内存空间中。

数组的优点是访问元素的速度快,但插入和删除元素的效率较低。

链表则是通过指针将各个元素链接在一起,不需要连续的内存空间。

链表在插入和删除元素时较为方便,但访问元素的速度相对较慢。

栈是一种特殊的线性表,遵循“后进先出”的原则。

就像往一个桶里放东西,最后放进去的会最先被取出。

队列则遵循“先进先出”的原则,类似于排队买票,先到的先买。

树是一种分层的数据结构,常见的有二叉树、二叉搜索树等。

二叉搜索树可以快速地进行查找、插入和删除操作。

图则用于表示多对多的关系,在网络路由、社交网络分析等领域有广泛的应用。

二、算法算法是解决特定问题的一系列明确步骤。

好的算法应该具有正确性、可读性、健壮性、高效性和低存储量需求等特点。

常见的算法有排序算法,如冒泡排序、插入排序、选择排序、快速排序等。

冒泡排序通过不断比较相邻的元素并交换位置,将最大的元素逐步“浮”到数组的末尾。

快速排序则通过选择一个基准元素,将数组分为小于和大于基准元素的两部分,然后对这两部分分别进行排序。

搜索算法也是重要的算法之一,包括顺序搜索和二分搜索。

顺序搜索逐个检查元素,直到找到目标元素或遍历完整个数组。

二分搜索则是在有序数组中,通过不断将数组对半分割来查找目标元素,效率较高。

还有动态规划算法,用于解决具有重叠子问题和最优子结构性质的问题,如背包问题、最长公共子序列问题等。

三、编程语言编程语言是软件开发者与计算机进行交流的工具。

《计算机软件技术基础》试题及答案

《计算机软件技术基础》试题及答案

计算机软件技术基础试题1.线性表的链式存储结构与顺序存储结构相比优点是 CD ; A. 所有的操作算法实现简单 B. 便于随机存取 C. 便于插入和删除D. 便于利用零散的存储器空间 2.线性表是具有n 个 C 的有限序列;A. 表元素B. 字符C. 数据元素D. 数据项E. 信息项3.若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元素的算法的时间复杂度为 C ;1≤I ≤n+1 A. O0 B. O1 C. OnD. On 24.设A 是一个线性表a 1,a 2,…,a n ,采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为 A ;若元素插在a i 与a i+1之间0≤I ≤n-1的概率为)1()(2+-n n i n ,则平均每插入一个元素所要移动的元素个数为 C ;A. 21-n B. 2n C. 312+nD. 413+n5.下列函数中,按它们在∞→n 时的无穷大阶数,最大的是 D ;A. log nB. nlog nC. 2n/2D. n6.A. s->next=p+1; p->next=s;B. p.next=s; s.next=p.next;C. s->next=p->next; p->next=s->next;D. s->next=p->next; p->next=s;7.将两个各有n 个元素的有序表归并为一个有序表时,其最少的比较次数是 A ; A. nB. 2n-1C. n-1D. 2n8.下面的程序段是合并两个无头结点链表ha和 hb为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的;合并后新链表的结点仍按此方式链接;请填写下述空框,使程序能正确运行;define NULL 0typedef struct node{int data;struct node next;}node, linklisttype;void combinelinklisttype ha, linklisttype hb{linklisttype h, p;h = linklisttype mallocsizeoflinklisttype;h->next = NULL;p = h;whileha = NULL && hb = NULLifha->data>=hb->data{ /较大的元素先插入/p->next = 1 ;p = 2 ;3 ;}else{p->next = 4 ;p = 5 ;6 ;}ifha==NULL 7 ;ifhb==NULL 8 ;ha = h->next;freeh;}参考答案: 1 ha 2 p->next 3 ha=ha->next4 hb5 p->next6 hb=hb->next7 p->next=hb 8 p->next=ha9.如果表A中所有元素a1,a2,…,a n与表B的一个顺序子表b k,b k+1,…b k+n-1完全相同即a1=b k,a2=b k+1,…a n=b k+n-1,则称表A包含在表B中;设ha,hb为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表A 是否包含在表B中,若是,则返回true,否则返回false;提示:用递归实现define true 1define false 0define NULL 0typedef struct node{int data;struct node next;}node, linklisttype;int inclusionlinklisttype ha, linklisttype hb{linklisttype pa, pb;pa = ha->next;pb = hb->next;1 ;while 2ifpa->data=pb->data 3 ;else 4 ;5 ;}参考答案:1 ifpa==NULL returntrue2 pb=NULL && pa->data>=pb->data3 returninclusionpa, pb4 pb = pb->next;5 returnfalse10.在本题的程序中,函数create_link_listn建立一个具有n个结点的循环链表;函数josephusn,I,m 对由create_link_listn所建立的具有n个结点的循环链表按一定的次序逐个输出,并删除链表中的所有结点;参数nn>0指明循环链表的结点个数,参数I1≤I≤n指明起始结点,参数mm>0是步长,指明从起始结点或前次被删除并输出的结点之后的第m个结点作为本次被输出并删除的结点;例如,对于下图所示的具有6个结点的循环链表,在调用josephus6,3,2后,将输出5,1,3,6,4,2;请在空框处填上适当内容,每框只填一个语句;define NULL 0typedef struct node{int data;struct node next;}node, linklisttype;linklisttype create_link_listint n{linklisttype head, p, q;int I;head = NULL;ifn>0{head = linklisttype mallocsizeoflinklisttype;p = head;forI=1;I<=n-1;I++{ /此循环用于建立一个链表,链表的内容从1至n-1/p->data = I;q = linklisttype mallocsizeoflinklistttype;1 ;2 ;}p->data = n;3 ; /建立从尾链到首的环形结构/}returnhead;}void Josephusint n, int j, int m{linklisttype p, q;int j;p = create_link_listn;for;I>1;I-- p = p->next;4 ;whilej<n{forI=1;I<=m-1;I++ p = p->next;5 ;printf“%8d”,q->data;6 ;freeq;j=j+1;}}参考答案:1 p->next = q;2 p = q;3 p->next = head4 j=05 q=p->next;6 p->next = q->next11.在下列程序中,函数differenceA,B用于求两集合之差C=A-B,即当且仅当e是A中的一个元素,且不是B中的元素时,e是C中的一个元素;集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之值按递增排列,执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示它的链表应根据元素之值按递增序排列;函数append用于在链表中添加结点;include <stdio.h>define NULL 0typedef struct node{int data;struct node next;}NODE;NODE appendNODE last, int x{last->next=NODE mallocsizeofNODE;last->next->data=x;returnlast->next;}NODE differenceNODE A ,NODE B{NODE C,last;C=last=NODE mallocsizeofNODE;while 1ifA->data < B->data{last=appendlast,A->data;A=A->next;}elseif 2 {A=A->next;B=B->next;}else3 ;while 4 {last=appendlast,A->data;A=A->next;}5 ;last=C;C=C->next;freelast;returnC;}参考答案:1 A=NULL & B=NULL2 A->data==B->data3 B=B->next;4 A=NULL5 last->next=NULL;12.阅读以下算法,填充空格,使其成为完整的算法;其功能是在一个非递减的顺序存储线性表中从下标1处开始存储,删除所有值相等的多余元素;define MAXSIZE 30typedef struct{int elemMAXSIZE;int length;/表长/}sqlisttype;void exam21sqlisttype L{int I,j;I=2,j=1;while 1 {ifL->elemI<>L->elemj{2 ;3 ;}I++;}4 ;}参考答案:1 i<=L->length23 j++;413.用单链表表示的链式队列的队头在链表的 A 位置;A. 链头B. 链尾C. 链中14.若用单链表表示队列,则应该选用 B ;A. 带尾指针的非循环链表B. 带尾指针的循环链表C. 带头指针的非循环链表D. 带头指针的循环链表15.在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印,先放入打印缓冲区的数据先被打印;该缓冲区应该是一个 B 结构;A. 堆栈B. 队列C. 数组D. 线性表16.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3;当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为 B ;A. 1和5B. 2和4C. 4和2D. 5和117.设栈的输入序列为1,2,…,10,输出序列为a1,a2,…,a10,若a5=10,则a7为 C ;A. 4B. 8C.不确定D.718.设栈的输入序列是1,2,3,4,则 D 不可能是其出栈序列;A. 1243 B. 2134 C. 1432 D. 431219.以下 D 是C语言中”abcd321ABCD”的子串;A. abcdB. 321ABC. “abcABC”D. “21AB”20.若串S=”software”,其子串的数目是 C ;A. 8B. 37C. 36D. 921.将一个A1:100,1:100的三对角矩阵,按行优先存入一维数组B1:298中,A中元素A66,65即该元素的下标在B数组中位置k为 B ;A. 198B. 195C. 197D. 19622.设高为h的二叉树只有度为0和2的结点,则此类二叉树的结点数至少为 B ,至多为F ;高为h的完全二叉树的结点数至少为 E ,至多为 F ;A. 2h B. 2h-1 C. 2h+1 D.h+1E. 2h-1F. 2h-1G. 2h+1-1H. 2h+123.一棵有124个叶结点的完全二叉树,最多有 B 个结点;A. 247B. 248C. 249D. 25124.若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是C ;A. 满二叉树B. 哈夫曼树C. 堆D. 二叉查找树25.前序遍历和中序遍历结果相同的二叉树为 F ;前序遍历和后序遍历结果相同的二叉树为B ;A. 一般二叉树B. 只有根结点的二叉树C. 根结点无左孩子的二叉树D. 根结点无右孩子的二叉树E. 所有结点只有左孩子的二叉树F. 所有结点只有右孩子的二叉树26.具有n 个结点的完全二叉树,已经顺序存储在一维数组A1..n 中,下面的算法是将A 中顺序存储变为二叉链表存储的完全二叉树;请填写适当语句在下面的空格内,完成上述算法; define MAXSIZE 30 typedef struct btnode{ int data;struct btnode lchild, rchild;}BTN;void createtreeBTN p,int A, int I,int n{ 1 ; p->data=AI; if 2 3 ; elsep->lchild=NULL;if 4 createtree 5 ; elsep->rchild=NULL; }void btreeBTN p ,int A,int n{ createtreep,A,1,n; }参考答案:1 p=BTN mallocsizeofBTN2 2I<=n3 createtreep->lchild,A,2I,n4 2I+1<=n5 p->rchild,A,2I+1,n27.若在线性表中采用折半查找法查找元素,该线性表应该 C ; A. 元素按值有序B. 采用顺序存储结构C. 元素按值有序,且采用顺序存储结构D. 元素按值有序,且采用链式存储结构28.在分块检索中,对256个元素的线性表分成 16 块最好,每块的最佳长度是 16 ;若每块的长度为8,其平均检索长度为 21 ;29.假定有K 个关键字互为同义词,若用线性探测法把这K 个关键字存入散列表中,至少要进行 D 次探测; A. K-1次 B. K 次 C. K+1次D. KK+1/2次30.在n 个记录的有序顺序表中进行折半查找,最大的比较次数是⎣⎦1log 2+n ;31.Hash 技术广泛应用于查找过程,选择Hash 函数的标准是 和 ;处理冲突的技术有优有劣,其共同标准是 ;32.在下述排序算法中,所需辅助存储空间最多的是 B ,所需辅助存储空间最小的是 C ,平均速度最快的是 A ; A.快速排序B. 归并排序C. 堆排序33.在文件局部有序或文件长度较小的情况下,最佳内部排序的方法是 A ;A. 直接插入排序B. 冒泡排序C. 简单选择排序34.快速排序在最坏情况下时间复杂度是On2,比 A 的性能差;A. 堆排序B. 冒泡排序C. 简单选择排序35.若需在Onlogn的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是C ;A. 快速排序B. 堆排序C. 归并排序D. 希尔排序36.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用B 方法最快;A. 冒泡排序B. 快速排序C. 希尔排序D. 堆排序E. 简单选择排序37.以下结点序列是堆的为 A ;A. 100,90,80,60,85,75,20,25,10,70,65,50B. 100,70,50,20,90,75,60,25,10,85,65,8038.若要尽可能快地完成对实数数组的排序,且要求排序是稳定的,则应选 C ;A. 快速排序B. 堆排序C. 归并排序D. 希尔排序39.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为 A 排序法;A. 插入排序B. 交换排序C. 选择排序D. 归并排序40.直接插入排序在最好情况下的时间复杂度为 B ;A. OlognB. OnC. OnlognD. On241.下面函数是将任意序列调整为最大堆的算法,请将空白部分填上:将任意序列调整为最大堆通过不断调用adjust函数,即fori=n/2;i>0;i-- adjustlist, i, n;其中list为待调整序列所在数组从下标1开始,n为序列元素的个数;void adjustint list, int root, int n{/将以root为下标的对应元素作为待调整堆的根,待调整元素放在list数组中,最大元素下标为n/ int child,rootkey;rootkey = 1 ;child = 2root;whilechild < n{ifchild<n && listchild<listchild+12 ;ifrootkey > listchildbreak;else{list 3 =listchild;4 ;}}list 5 =rootkey;}参考答案:1 listroot2 child++;3 child/24 child = 2;5 child/241.表是一种数据结构,链表是一种 1 ;队列和栈都是线性表,栈的操作特性是 2 ,队列的操作特性是 3 ;今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进栈、进栈、出栈、进栈、进栈、出栈的操作,则此操作完成后,栈S的栈顶元素为 4 ,栈底元素为5 ;供选答案:1: A. 非顺序存储线性表 B. 非顺序存储非线性表C. 顺序存储线性表D. 顺序存储非线性表2: A. 随机进出 B. 先进后出C. 先进先出D. 出优于进3: A. 随机进出 B. 先进后出C. 后进后出D. 进优于出4: A. f B. cC. aD. b5: A. b B. cC. aD. d答案:ABCBC42.操作系统主要是对计算机系统全部 1 进行管理,以方便用户、提高计算机使用效率的一种系统软件;它的主要功能有:处理机管理、存储管理、文件管理、 2 管理和设备管理等;Windows 和Unix是最常用的两类操作系统;前者是一个具有图形界面的窗口式的 3 系统软件,后者是一个基本上采用 4 语言编制而成的的系统软件;在 5 操作系统控制下,计算机能及时处理由过程控制反馈的信息并作出响应;供选答案:1: A. 应用软件 B. 系统软硬件C. 资源D. 设备2: A. 数据 B. 作业C. 中断D. I/O3: A. 分时 B. 多任务C. 多用户D. 实时4: A. PASCAL B. 宏C. 汇编D. C5: A. 网络 B. 分时C. 批处理D. 实时答案:CBBDD43.本程序从键盘读入整数,并按从大到小的顺序输出输入整数中互不相等的那些整数;程序一边读入整数,一边构造一个从大到小顺序链接的链表,直至不能从键盘读入整数,然后顺序输出链表上各表元的整数值;主函数每读入一个整数,就调用函数insert,函数insert将还未出现在链表上的整数按从大到小的顺序插入到链表中;为了插入方便,链表在表首有一个辅助表元;阅读下列C代码,在 n 处填入相应的字句以完成上述功能;include <stdio.h>include <malloc.h>define NULL 0typedef struct node{int val;struct node next;}NODE;void insertNODE list,int x{NODE u, v, p;u = list; v = u->next;while 1 && x < v->val{ /寻找插入位置/u=v;v=u->next;}ifv==NULL || 2 { /判断是否要插入表元/p = NODE mallocsizeofNODE;p->val = x; /生成新表元/3 = v;4 = p; /插入新表元/}}main{int x;NODE head, p;/首先建立只有辅助表元的空链表/head = NODE mallocsizeofNODE;5 =NULL;printf“Enter Integers:\n”;whilescanf“%d”,&x == 1 /反复读入整数插入链表/inserthead,x;forp=head->next;p=NULL;p=p->next /输出链表/printf“%d\t”,p->val;printf“\n”;}答案:1 v = NULL或v2 x > v->val 或 x = v->val3 p->next4 u->next5 head->next44.计算机数据处理的对象是具有不同结构的各种数据,可以访问的最小数据信息单位是1 ,可以引用的最小命名数据单位是2 ;线性表是最简单的一种数据结构,有顺序和链接两种存储方式;线性表按链接方式存储时,每个结点的包括 3 两部分;线性表的查找有 4 和 5 两种,但 5 只能用于顺序存储的情况; 供选答案:1: A. 数字 B. 字符C. 数据元素D. 数据项2: A. 结点 B. 记录C. 数据元素D. 数据项3: A. 数据值与符号 B. 数据与指针C. 数据与表名D. 头地址与尾地址4: A. 随机查找 B. 顺序查找C. 二分法查找D. 浏览5: A. 随机查找 B. 顺序查找C. 二分法查找D. 浏览答案:CDBBC45.本程序用于从链盘读入整数,插入到链表,或从链表删除一个整数;阅读下面的C代码,将应填入 n 处的字名写在答卷的对应栏内;include <stdio.h>include <malloc.h>typedef struct node{int val;struct node next;}NODE;NODE insNODE list, int x{ /将x按从小到大的次序插入链表/NODE u, v=list, p;for; v = NULL && x < v->val ; v = v->next;/寻找插入位置/ifv = NULL && x == v->val returnlist; /已有,被忽略/p = NODE mallocsizeofNODE;p->val=x; /生成新表元/ifv == list list = p;else 1 ;2 ;return list;}NODE delNODE list, int x{ /从链表中删除值为x的表元/NODE u, v;forv = list; v = NULL && x < v->valu; u=v;v=v->next;ifv = NULL && x == v->val{ /找到值为x的表元/ifv == list list = list->next;else 3 ;4 ; /释放空间/}else p rintf“没有找到\n”;returnlist;}main{int x,ans;NODE list=NULL, p;while1{printf“\n输入1:将整数插入到链表;\n输入2:从链表删除一个整数;\n”;printf“其它整数,结束程序;\n\t请输入选择”;scanf%d,&ans;if 5 return;printf“输入整数:”;scanf“%d”,&x;ifans==1 list=inslist,x;else list=dellist,x;forp=list;p=NULL;p=p->nextprintf“%4d”,p->val;}}答案:1 u->next = p;2 p->next = v3 u->next = v->next4 freev5 ans = 1 && ans = 246. 从未排序的序列中,依次取出元素,与已排序序列的元素比较后,放入已排序序列中的恰当位置上,这是 1 排序;从未排序的序列中,挑选出元素,放在已排序序列的某一端位置,这是 2 排序;逐次将待排序的序列中的相邻元素两两比较,凡是逆序则进行交换,这是 3 排序;如果整个排序过程都在内存中进行,称为4 排序;排序算法的复杂性与排序算法的5 有关;供选答案:1: A. 选择 B. 插入C. 比较D. 归并2: A. 选择 B. 插入C. 比较D. 归并3: A. 冒泡 B. 交换C. 比较D. 散列4: A. 外部 B. 内部C. 外存D. 内存5: A. 运算量大小与占用存储多少B. 运算量大小与处理的数据量大小C. 并行处理能力和占用存储多少D. 占用存储多少和处理的数据量大小答案:BAABA47.操作系统是对计算机资源进行的 1 系统软件,是 2 的接口;在处理机管理中,进程是一个重要的概念,它由程序块、 3 和数据块三部分组成,它有3种基本状态,不可能发生的状态转换是 4 ;虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 5 作为它的一个主要组成部分;供选答案:1: A. 输入和输出 B. 键盘操作C. 管理和控制D. 汇编和执行2: A. 软件和硬件 B. 主机和外设C. 高级语言和机器语言D. 用户和计算机3: A. 进程控制块 B. 作业控制块C. 文件控制块D. 设备控制块4: A. 运行态转换为就绪态 B. 就绪态转换为运行态C. 运行态转换为等待态D. 等待态转换为运行态5: A. 软盘 B. 硬盘C. CDROMD. 寄存器答案:CDADB48. A 是信息的载体,它能够被计算机识别、存储和加工处理;A. 数据B. 数据元素C. 结点D. 数据项49.下列程序段的时间复杂度为 C ;fori=1;i<n;i++{y=y+1;forj=0;j<=2n;j++ x++;}供选答案:A. On-1B. O2nC. On2D. O2n+150.下面程序段的时间复杂度为 D ;i=1;whilei<=n i=i2;供选答案:A. O1B. OnC. On2D. Olog2n51.下面程序段的时间复杂度为 B ;a=0;b=1;fori=2;i<=n;i++{s=a+b;b=a;a=s;}供选答案:A. O1B. OnC. Olog2nD. On252.数据结构是一门研究非数值计算的程序设计问题中,计算机的 A 以及它们之间的关系和运算等的学科;A.操作对象B. 计算方法C. 逻辑存储D. 数据映象53.在数据结构中,从逻辑上可以把数据结构分成 C ;A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构54.算法分析的目的是 C ;A. 找出数据结构的合理性B. 研究算法中输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性55.算法分析的两个主要方面是 4 ;A. 间复杂性和时间复杂性B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性56.一个线性顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址为B ;A. 110B. 108C. 100D. 12057.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为P1,P2,P3,…,P n,若P1=n,则P i为 C ;A. iB. n-iC. n-i+1D.不确定58.对于一个栈,给出输入项A,B,C;如果输入项序列由A,B,C所组成,则不可能产生的输出序列是A ;A. CABB. CBAC. ABCD. ACB59.设有如下的单链表的按序号查找的算法,其时间复杂度为 B ;LinkNode GetNodeLinklist head, int i{int j;ListNode p;P = head; j=0;whilep->next && j<i{p = p->next;j++;}ifi==jreturnp;elsereturnNULL;}供选答案:A. On2B. O2nC. On3D. Ologn60.二维数组A mn按行序为主顺序存放在内存中,每个数组元素占1个存储单元,则元素a ij的地址计算公式是 C ;A. LOCa ij = LOCa11+i-1m+j-1B. LOCa ij = LOCa11+j-1m+i-1C. LOCa ij = LOCa11+i-1n+j-1D. LOCa ij = LOCa11+j-1n+i-161.以下哪一个不是队列的基本运算 C ;A. 从队尾插入一个新元素B. 从队列中删除第i个元素C. 判断一个队列是否为空D. 读取队头元素的值62.在一个长度为n的顺序表中,向第i个元素之前插入一个新元素,需向后移动 B 个元素;A. n-iB. n-i+1C. n-i-1D. i63.从一个长度为n的顺序表中删除第i个元素时,需向前移动 A 个元素;A. n-iB. n-i+1C. n-i-1D. i64.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是 B ;A. front=rear+1B. front=rearC. front+1=rearD. front=065.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较 D 个结点;A. nB. n/2C. n-1/2D. n+1/266.一个栈的入栈序列是a,b,c,d,e,则栈不可能的输出序列是 C ;A. edcbaB. decbaC. dceabD. abcde67.栈结构通常采用的两种存储结构是 A ;A. 顺序存储结构和链表存储结构B. 散列方式和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构68.判断一个顺序栈ST最多元素为mo为空的条件是 B ;A. ST->top<>0B. ST->top=0C. st->top<>moD. st->top==mo69.不带头结点的单链表head为空表的判定条件是 A ;A. head==NILLB. head->next==NULLC. head->next==headD. head = NULL70.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在p和q之间插入s结点,则应执行C ;A. s->next = p->next; p->next=s;B. p->next = s->next; s->next=p;C. q->next = s; s->next=p;D. p->next = s; s->next=q;71.假设双向链表结点的类型如下:typedef struct Linknode{int data;struct Linknode lLink; /前驱结点指针/struct Linknode rLink; /后继结点指针/}下面给出的算法是要把一个q所指新结点,作为非空双向链表中的p所指的结点前驱结点插入到该双向链表中,能正确完成要求的算法段是 C ;A.q->rLink=p; q->lLink=p->lLink; p->lLink=q; p->lLink->rLink=q;B. p->lLink=q, q->rLink=p; p->lLink->rLink=q; q->lLink=p->lLink;C. q->lLink=p->lLink; q->rLink=p;p->lLink->rLink=q;p->lLink=q;D. 以上均不对72.串是一种特殊的线性表,其特殊性体现在 B ;A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符73.设有两个串p和q,求q在p中首次出现的位置的运算称作 B ;A. 连接B. 模式匹配C. 求子串D. 求串长74.设串s1=”ABCDEFG”,s2=”PQRST”,函数conx,y返回x和y串的连接串,subss,I,j返回串s的从序号i的字符开始的j个字符组成的子串,lens返回串s的长度,则consubs1,2,lens2,subs1,lens2,2的结果是 D ;A. BCDEFB. BCDEFGC. BCPQRSTD. BCDEFEF75.常对数组进行的两种基本操作是 C ;A. 建立和删除B. 索引和修改C. 查找和修改D. 索引和查找76.稀疏矩阵一般的压缩存储方法有两种,即C ;A. 二维数组和三维数组B. 三元组和散列C. 三元组和十字链表D. 散列和十字链表77.对下图所示的二叉表,按先根次序遍历得到的结点序列为 B ;A. ABCDHEIFGB. ABDHIECFGC. HDIBRAFCGD. HIDBEFGAC78.在一棵二叉树上,度为0的结点个数为n0,度为2的结点数为n2,则n0= A ;A. n2+1B. n2-1C. n2D. n2/279.某二叉树前序遍历结点的访问顺序是ABCDEFG,中序遍历结点的访问顺序是CBDAFGE,则其后序遍历结点的访问顺序是 A ;A.CDBGFEA B. CDGFEABC. CDBAGFED. CDBFAGE80.在下列存储形式中, D 不是树的存储形式;A. 双亲表示法B. 孩子链表表示法C. 孩子兄弟表示法D. 顺序存储表示法81. 已知一棵二叉树的中序序列为cbedahgijf,后序序列为cedbhjigfa,则该二叉树为B ;82. 已知一棵权集W={2,3,4,7,8,9}的哈夫曼树,其加权路径长度WPL为C ;A. 20B. 40C. 80D. 16083.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,n m个度为m的结点,问这棵树中叶子结点为C ;A. 1+n i I-1B. 1+n i I+1C. n1+n2+…+n mD. m·n m84.如下图所示的4棵二叉树中, C不是完全二叉树;85.设高度为h的二叉树上只有度为0或度为2的结点,则此类二叉树中所包含的结点数至少为B ;A. 2hB. 2h-1C. 2h+1D. h+186.如下图所示的二叉树的中序遍历序列是C ;A. abcdgefB. dfebagcC. dbaefcgD. defbagc87.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,则其前序遍历序列为D ;A. acbedB. decabC. deabcD. cedba88.如果T2是由有序树T转换而来的二叉树,则T中结点的前序就是T2中结点的 A ;A. 前序B. 中序C. 后序D. 层次序89.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历;这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树;下面结论正确的是A ;A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B. 树的先根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上均不对90. 深度为5的二叉树至多有C个结点;A. 16B. 32C. 31D. 1091. 在一非空二叉树的中序遍序序列中,根结点的右边 A ;A. 只有右子树的所有结点B. 只有右子树的部分C. 只有左子树的部分结点D. 只有左子树的所有结点 92. 树最适合用来表示 C ;A. 有序数据元素B. 无序数据元素C. 元素之间具有分支层次关系的数据D. 元素之间无联系的数据93. 设n,m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是 C ; A. n 在m 的右方 B. n 是m 的祖先 C. n 在m 的左方D. n 是m 的子孙94.对一个满二叉树,m 个树叶,n 个结点,深度为h,则 D ;A. n=h+mB. h+m=2nC. m=h-1D. n=2h-1 95.如果某二叉树的前序为stuwv,中序为uwtvs,则该二叉树后序为 C ;A. uwvtsB. vwutsC. wuvtsD. wutsv96.设待排序的记录为20,16,13,14,19,经过下列过程将这些记录排序;20,16,13,14,19 16,20,13,14,19 13,16,20,14,19 13,14,16,20,19 13,14,16,19,20所用的排序方法是 A ; A. 直接插入排序 B. 冒泡排序 C. 希尔排序D. 堆排序97.对下列4个序列用快速排序的方法进行排序,以序列的第一个元素为基础进行划分,在第一趟划分过程中,元素移动次数最多的是 A 序列; A. 70,75,82,90,23,16,10,68 B. 70,75,68,23,10,16,90,82 C. 82,75,70,16,10,90,68,23 D. 23,10,16,70,82,75,68,9098.用快速排序的方法对包含几个关键字的序列进行排序,最坏情况下,执行的时间为 D ; A. OnB. Olog 2nC.Onlog 2nD. On 299.在所有排序方法中,关键码即关键字比较的次数与记录的初始排列次序无关的是 D ; A. 希尔排序B. 冒泡排序C. 直接插入排序D. 直接选择排序100.在归并排序过程中,需归并的趟数为 C ; A. nB. nC. ⎣⎦n n 2logD. ⎣⎦n 2log101.一组记录的排序代码为{46,79,56,38,40,84},则利用堆排序的方法建立的初始堆为 B ;A. {79,46,56,38,40,80}B. {84,79,56,38,40,46}C. {84,79,56,46,40,38}D. {84,56,79,40,46,38}102.一组记录的排序代码为{46,79,56,38,40,84},则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为 C ;A. {38,40,46,56,79,84}B. {40,38,46,79,56,84}C. {40,38,46,56,79,84}D. {40,38,46,84,56,79}103.每次把待排序的区间划分为左、右两个子区间,其中左区间中元素的排序码均小于等于基准元素的排序码,右区间中元素的排序码均大于等于基准元素的排序码,此种排序方法叫做 B ;A. 堆排序B. 快速排序C. 冒泡排序D. 希尔排序104.一组记录的排序码为一个字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},按归并排序方法对该序列进行一趟归并后的结果为 D ;A. D,F,Q,X,A,B,N,P,C,M,W,YB. D,F,Q,A,P,X,B,N,Y,C,M,WC. D,Q,F,X,A,P,N,B,Y,M,C,WD. D,Q,F,X,A,P,B,N,M,Y,C,W105.一组记录的排序码为{25,48,16,35,79,82,23,40,36,72},其中,含有5个长度为2的有序表,按归并排序方法对该序列进行一趟归并后的结果为 A ;A. 16,25,35,48,23,40,79,82,36,72B. 16.25,35,48,79,82,23,36,40,72C. 16,25,48,35,79,82,23,36,40,72D. 16,25,35,48,79,23,36,40,72,82106.设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用C排序法;A. 冒泡排序B. 快速排序C. 堆排序D. 希尔排序107.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 A ;A. 插入排序B. 选择排序C. 快速排序D. 归并排序108.用某种排序方法对线性表{25,84,21,47,15,27,68,35,20}进行排序时,元素序列的变化情况如下:1 25,84,21,47,15,27,68,35,202 20,15,21,25,47,27,68,35,843 15,20,21,25,35,27,47,68,844 15,20,21,25,27,35,47,68,84则所采用的排序方法是 D ;A. 选择排序B. 希尔排序C. 归并排序D. 快速排序109. 快速排序方法在C情况下最不利于发挥其长处;A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据已基本有序D. 要排序的数据个数为整数110. 设有一个已按各元素的值排好序的线性表,长度大于2,对给定的值K,分别用顺序查找法和二分查找法查找一个与K相等的元素,比较的次数分别为s和b;在查找不成功的情况下,正确的s和b的数量关系是 B ;A. 总有s=bB. 总有s>bC. 总有s<bD. 与k值大小有关111. 如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的方法是A ;A. 分块法B. 顺序法C. 二分法D. 哈希法112. 哈希表的地址区间为0-17,哈希函数为Hk=k mod 17;采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中;那么,元素59存放在哈希表中的地址是 D ; A. 8 B. 9C. 10D. 11113. 哈希表的地址区间为0-17,哈希函数为Hk=k mod 17;采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中;如果要访问元素59,则需要的搜索次数是C ;A. 2B. 3C. 4D. 5114.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D ;A. Spodling技术B. 虚拟存储技术C. 缓冲技术D. 多道程序设计技术115.分时系统追求的目标是 C ;A. 高吞吐率B. 充分利用内存C. 快速响应D. 减少系统开销116.引入多道程序的目的是 D ;A. 提高实时响应速度B. 增强系统交互能力C. 为了充分利用主存储器D. 充分利用CPU,减少CPU等待时间117.若把操作系统看作计算机系统资源的管理者,下列 D 不属于操作系统所管理的资源; A. 程序 B. 内存C. CPUD. 中断118. A 不属于多道程序设计的概念;A. 多个用户同时使用一台计算机的打印设备B. 多个用户同时进入计算机系统,并要求同时处于运行状态C. 一个计算机系统从宏观上进行作业的并行处理,但在微观上仍在串行操作D. 多个作业同时存放在主存并处于运行状态119.操作系统的CPU管理主要是解决 C ;A. 单道程序对CPU的占用B. 多道程序对CPU的占用C. 多道程序对CPU的分配D. 多道程序或单道程序对CPU的争夺120.分时操作系统是指 B ;A. 多个用户分时使用同一台计算机的某一个终端B. 多道程序分时共享计算机的软、硬件资源C. 多道程序进入系统后的批量处理D. 多用户的计算机系统121. A 不是实时系统的特征;A. 很强的交互性B. 具有对用户信息的及时响应性C. 具有很强的可靠性D. 有一定的交互性122.工业过程控制系统中,运行的操作系统最好是 B ;A. 分时系统B. 实时系统C. 分布式操作系统D. 网络操作系统123. 对处理事件有严格时间限制的系统是 B ;A. 分时系统B. 实时系统C. 分布式操作系统D. 网络操作系统。

大学计算机基础教程(高守平第二版)第2章操作系统基础

大学计算机基础教程(高守平第二版)第2章操作系统基础

大学计算机基础教程(高守平第二版)第2章操作系统基础大学计算机基础教程(高守平第二版)第2章操作系统基础第一节操作系统的定义和作用操作系统是一种系统软件,它管理和控制计算机硬件资源,并提供给用户一个简单易用的界面,使得用户可以方便地使用计算机。

1.1 操作系统的定义操作系统是指在计算机和用户之间起到桥梁作用的软件。

它利用计算机的硬件资源,提供给用户一个友好的环境,使得用户可以与计算机交互,并能够运行各种应用程序。

1.2 操作系统的作用操作系统有以下几个主要作用:(1)管理和分配计算机系统的硬件资源,包括处理器、存储器、输入输出设备等;(2)提供用户与计算机之间的接口,让用户能够方便地使用计算机;(3)管理和调度进程,保证多个进程之间的并发执行;(4)提供各种系统服务和功能,如文件管理、网络通信等。

第二节操作系统的基本概念2.1 进程和线程进程是指正在运行的程序的实例。

每个进程有自己的地址空间、文件描述符等资源。

一个进程可以包含多个线程,线程是在进程中独立运行的执行单元。

2.2 内存管理操作系统负责管理计算机的内存资源,包括内存的分配和释放、虚拟内存的管理等。

通过虚拟内存技术,操作系统可以将进程使用的内存分为多个虚拟地址空间,从而提高内存的利用率。

2.3 文件系统文件系统负责管理计算机中的文件和目录。

它提供了对文件的读写操作,并管理文件的存储和组织。

文件系统还提供了目录结构,方便用户组织和查找文件。

2.4 设备管理设备管理是操作系统对计算机硬件设备进行管理的一项重要任务。

它负责对设备的分配和回收,以及设备的驱动程序的管理。

通过设备管理,操作系统可以提供对各种设备的统一访问接口,使得应用程序可以方便地使用设备。

第三节常见的操作系统3.1 Windows操作系统Windows操作系统是由微软公司开发的一种广泛使用的操作系统,具有图形化界面和丰富的应用软件。

Windows操作系统拥有庞大的用户群体,在个人计算机和企业中使用广泛。

软件技术基础_OS习题解答

软件技术基础_OS习题解答

P(full1); P(mutex1); 从buf1取数据; V(mutex1); V(empty1); 计算;
P(empty2); P(mutex2); 将数据放入buf2; V(mutex2); V(full2); …
打印进程: P(full2); P(mutex2); 从buf2取数据; V(mutex2); V(empty2); 打印;
2020/4/28
电子科技大学通信与信息工程学院
19. 操作系统如何实现应用程序与设备的独立 性? • 设备独立性是指用户程序独立于具体物理设备。 • 为了实现设备独立性,在应用程序中应使用逻
辑设备名;操作系统应该设置逻辑设备到物理 设备的映射表,当进程请求某类设备时,系统 根据逻辑设备名查表找到是否还有该类设备以 及物理设备的状态,决定是否能安全分配进程 所需的设备。
• 另外,页面的大小也会对“抖动”产生影响。
2020/4/28
电子科技大学通信与信息工程学院
17. 操作系统通过哪些途径提高内存利用率? • 将连续分配方式改为离散分配方式,减小零头 • 引入虚拟存储机制,使更多的作业能装入内存,
以及避免一次装入这次运行不会用到的程序和数 据 • 引入动态链接,当程序运行中需要调用某段程序 时才装入内存,以及避免内存中装入重复的拷贝 • 引入存储共享机制,以免内存中装入重复的拷贝
• 引入线程后,进程是资源申请的基本单位;线 程是进程内用于调度处理机的基本单位。两者 比较见P.113.
2020/4/28
电子科技大学通信与信息工程学院
4. PCB的作用是什么?为什么说PCB是进程 存在的唯一标志? • PCB的作用是记录和描述进程执行情况和状态,
使程序变成了进程。 • 在进程的整个生命周期中,操作系统是通过PCB

计算机基础知识了解计算机操作系统的文件系统和设备管理

计算机基础知识了解计算机操作系统的文件系统和设备管理计算机基础知识:了解计算机操作系统的文件系统和设备管理操作系统是计算机系统中非常重要的组成部分,它负责管理和控制计算机的各种硬件和软件资源,协调各个程序的执行以及提供用户与计算机系统之间的接口。

其中,文件系统和设备管理是操作系统的两个核心功能之一。

本文将介绍计算机操作系统的文件系统和设备管理的基本知识。

一、文件系统文件系统是指操作系统用来组织和管理计算机存储设备上的文件和目录的一套规则和数据结构。

在文件系统中,文件被组织成目录的层次结构,用户可以通过路径名来唯一标识和访问文件。

文件系统提供了对文件的创建、读取、写入和删除等基本操作,同时还提供了对文件的共享、保护和存储空间的管理等高级功能。

1. 文件和目录文件是计算机中存储数据的基本单位,可以是文本、图像、音频或视频等形式。

在文件系统中,文件以二进制形式存储在磁盘或其他存储介质中,并通过文件名来标识和访问。

目录是文件的组织和管理单位,可以嵌套形成层次结构。

用户可以根据需要创建、删除和重命名文件和目录,以及进行文件的复制、移动和查找等操作。

2. 存储管理文件系统通过虚拟地址空间来管理存储设备上的物理存储空间。

文件系统将虚拟地址空间划分为若干个逻辑块或扇区,与物理存储空间上的实际扇区相映射。

用户通过逻辑块号来访问文件,并由操作系统将逻辑块号映射为物理扇区号。

同时,文件系统还负责处理存储空间的分配和回收,以及管理文件的存储位置和数据的读写操作。

3. 文件共享和保护文件系统提供了对文件的共享和保护机制,使多个用户可以同时访问和使用同一个文件。

通过权限控制和文件锁定等技术,文件系统可以实现对文件的读写权限和访问控制。

同时,文件系统还可以对文件进行加密和压缩等处理,以提高数据的安全性和空间利用率。

二、设备管理设备管理是操作系统的另一个重要功能,它负责管理和控制计算机的各种输入输出设备,并提供给用户和应用程序使用这些设备的接口。

软件技术基础-ppt可编辑全文

*
《数据结构课程》所处的地位:
*
什么是数据结构? 几个概念: 数据(Data):是对信息的一种符号表示。在计算机科学中是指所有能输入(识别)到计算机中(存储)并被计算机程序处理(加工)的符号的总称。 数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。 数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。
*
数据的逻辑结构分类 根据数据元素间关系的基本特性,有四种基本数据结构 (集合)——数据元素间除“同属于一个集合”外,无其 它关系 线性结构——一个对一个,如线性表、栈、队列 树形结构——一个对多个,如树 图状结构——多个对多个,如图
*
数据的逻辑结构
从逻辑关系上描述数据,与数据的存储无关; 从具体问题抽象出来的数据模型; 与数据元素本身的形式、内容无关; 与数据元素的相对位置无关。
*
例1 书目自动检索系统
登录号:
书名:
作者名:
分类号:
出版单位:
出版时间:
价格:
书目卡片
书目文件
按书名
按作者名
按分类号
索引表
线性表
*

……..
……..
…...
…...
…...
…...
例2 计算机和人对弈问题
*
例3 多叉路口交通灯管理问题
C
E
D
A
B
AB
AC
AD
BA
BC
BD
DA
DB
DC
EA
EB
*
数据的逻辑结构

软件技术基础-OS设备管理


(2)提取输入 当需要处理输入数据时,计算进程调用getbuf ( inq),从满输入缓冲区队列(inq)的队首取出一缓 冲区—提取输入的工作缓冲区(sin)。 计算进程从sin提取数据处理。 调用过程putbuf(emq,sin),释放工作缓冲区sin, 并插入空缓冲队列尾。
缓冲输出过程(收容输出、提取输出)与输入类似。
系统为每个设备配置了一张设备控制表,记录该设备的情况反映设备特性, 设备与I/O控制器连接情况。
DCT1 . . . DCTi . . . DCTn
设备类型Type 设备表示符:device_id 设备状态:忙/闲 指向控制器表的指针 重复执行次数或时间 设备等待队列队首指针 设备等待队列队尾指针
(1)程序I/O方式 (3) DMA 控制方式
(2)中断控制方式 (4)通道控制方式
(1)程序I/O方式
设备
接收到CPU 发来的start指令 准备接收和发送 数据准备 否
CPU 向设备发start指令

设备标志触发器 置为“Done”? 否 等待
准备完毕? 是
标志触发器置“Done”
等待CPU来的下条指令 执行下条指令 开始数据传输
缓冲区处理完后再由设备输入数据 速度1 解决了速率匹配问题
速度2
2.双缓冲区(double buffer)
一般是建立两个大小相等的缓 冲区,设备交替对两个缓冲区 输入数据,操作系统也交替地 从两个缓冲区移出数据送用户 进程区。
提高CPU与设备间的并行度 同时
设备
CPU
接收 设备1 CPU CPU 发送 设备2 双向通信
(2)中断控制方式 结合进程调度机制,实现让权等待
进程利用中断实现输入、输出流程:

计算机科学与技术基础知识

计算机科学与技术基础知识计算机科学与技术是一门涵盖广泛的学科,涉及到各种计算机系统和相关应用的原理、设计和开发。

具备扎实的计算机科学与技术基础知识对于从事计算机行业的人来说尤为重要。

本文将从硬件、操作系统、编程语言和网络技术几个方面介绍计算机科学与技术的基础知识。

一、硬件知识计算机硬件是指计算机的物理组件,包括中央处理器(CPU)、内存、硬盘、显卡等。

了解计算机硬件的基本原理和功能可以帮助我们更好地理解和利用计算机系统。

1. 中央处理器(CPU):CPU是计算机的大脑,负责执行各种指令和处理数据。

它包括运算器和控制器两部分,其中运算器负责算术和逻辑运算,控制器负责指令的解码和执行。

2. 内存:内存是计算机用于存储指令和数据的地方。

它分为主存储器和辅助存储器两部分,主存储器用于存储当前正在执行的程序和数据,辅助存储器用于长期保存数据。

3. 硬盘:硬盘是计算机的永久存储设备,用于存储操作系统、应用程序和用户数据。

它通过磁盘驱动器读写数据,具有较大的存储容量和较低的成本。

4. 显卡:显卡负责计算机图形显示,将计算机生成的图像信号转换为显示器可以识别的图像。

它包括图形处理器和视频存储器,能够实现高分辨率和流畅的图形显示效果。

二、操作系统操作系统是计算机系统的核心软件,负责管理和控制计算机的硬件资源,为用户和应用程序提供接口和服务。

了解操作系统的基本原理和功能有助于我们更好地使用计算机系统。

1. 进程管理:操作系统负责管理计算机中同时运行的多个进程,分配和调度CPU时间,控制进程之间的通信和同步。

2. 文件系统:操作系统提供文件系统来组织和管理计算机中的文件和目录,实现文件的读写和存储管理。

3. 内存管理:操作系统使用虚拟内存技术将内存划分为多个虚拟地址空间,为每个进程提供独立的内存空间,有效利用计算机的内存资源。

4. 设备管理:操作系统管理计算机中的各种设备,包括输入输出设备、存储设备和通信设备,为应用程序提供访问和控制接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
35
2) 端口编址方法
接口电路中:多个寄存器 一个寄存器有唯一的一个地址,每个地 址为I/O端口,该地址称为I/O端口地址。 I/O指令形式与I/O地址是相互关联的, 主要有两种形式:
内存映像编址(内存映像I/O模式)
I/O独立编址(I/O专用指令)
36
3) I/O独立编址
分配给系统中所有端口的地址空间是完全独立 的,与内存的地址空间没有关系 主机使用专门的I/O指令对端口进行操作 优点
方便性 友好界面
透明性
逻辑设备与物理设备、屏蔽硬件细节(设备的物理 细节,错误处理,不同I/O的差异性)
3)充分利用各种技术(通道,中断,缓冲等) 提高CPU与设备、设备与设备之间的并行工作 能力,充分利用资源,提高资源利用率( 并行 性、 均衡性)
11
设备管理的目标和任务(续)
4)保证在多道程序环境下,当多个进程 竞争使用设备时,按一定策略分配和管 理各种设备,使系统能有条不紊的工作 5)保护
13
设备管理的目标和任务(续)
7)统一性: 对不同的设备采取统一的操作方式,在 用户程序中使用的是逻辑设备。 优点:
设备忙碌或设备故障时,用户不必修改程 序 改善了系统的可适应性和可扩展性
14
1. I/O软件的组成
I/O软件的基本思想:
按分层的思想构成
较低层软件要使较高层软件独立于硬件的特 性
较高层软件则要向用户提供一个友好的、清 晰的、简单的、功能更强的接口
33
4.设备与主机间最基本的连接方式
四个要素: 设备接口形式 I/O指令形式 I/O地址空间分配及译码 连线问题
34
1) 设备接口形式
端口地址译码
按照主机与设备的约定格式和过程接受或发送 数据和信号
计算机 设备 设备 计算机
将计算机的数字信号转换为机械部分能识别的 模拟信号,或反过来 实现一些诸如设备内部硬件缓冲存储、数据加 工的提高性能或增强功能的任务
31
2. 设备接口
控制器与设备之间的接口常常是一个低级接口。
例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式 化。然而,实际从驱动器出来的却是一连串的位流,以一个头标 (preamble)开始,然后是一个扇区的4096位(512×8),最后 是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁 盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的 一些数据
DMA控制器可用来代替CPU控制内存和外 设之间进行成批的数据交换。
I/O以数据块为单位连续读写。
43
DMA技术(续1)
当处理器需要读写一整块数据时,给DMA 控制单元发送一条命令
包含:是否请求一次读或写,I/O设备的编址, 开始读或写的主存编址,需要传送的数据长 度等信息 处理器发送完命令后就可处理其它事情
逻辑设备
物理设备
6. 按数据传输率分
高速设备 低速设备
9
设备管理的目标和任务
1)按照用户的请求,控制设备的各种操作, 完成I/O设备与内存之间的数据交换
包括设备分配与回收;
设备驱动程序;
设备中断处理;
缓冲区管理 最终完成用户的I/O请求
10
设备管理的目标和任务(续)
2)向用户提供使用外部设备的方便接口,使 用户摆脱繁琐的编程负担
1) 独占设备
在一段时间内只能有一个进程使用的设备, 一般为低速I/O设备。(如打印机,磁带等)
2) 共享设备
在一段时间内可有多个进程共同使用的设备, 多个进程以交叉的方式来使用设备,其资源 利用率高。(如硬盘)
3) 虚设备
7
3) 虚设备
在一类设备上模拟另一类设备,常用共享设 备模拟独占设备,用高速设备模拟低速设备, 被模拟的设备称为虚设备
(1) CPU性能不等于系统性能
响应时间也是一个重要因素
(2) CPU性能越高,与I/O差距越大
弥补:更多的进程
(3) 进程切换多,系统开销大
3
5.1.1 I/O的特点
2. 操作系统庞大复杂的原因之一是:资 源多、杂,并发,均来自I/O
外设种类繁多,结构各异 输入输出数据信号类型不同 速度差异很大
16
3. 中断处理程序
每个进程在启动一个I/O操作后阻塞
直到I/O操作完成并产生一个中断
由操作系统接管CPU后唤醒该进程为止
17
4. 设备驱动程序
与设备密切相关的代码放在设备驱动程序中,每 个设备驱动程序处理一种设备类型。 每一个控制器都设有一个或多个设备寄存器,用 来存放向设备发送的命令和参数。设备驱动程序 负责释放这些命令,并监督它们正确执行 一般,设备驱动程序的任务是接收来自与设备无 关的上层软件的抽象请求,并执行这个请求。
41
2. 中断驱动I/O技术
当有中断设施时,CPU启动外设后就 转向其它程序,只在发出I/O中断请求 时,再转去进行输入输出操作,因此 大部分时间CPU可做它用。 每传输一个字或字符,往往就要做一 次中断处理。因此,当I/O设备很多时, CPU可能完全陷入I/O处理中。
42
3. DMA技术
直接存储器访问(DMA:Direct Memory Access) DMA方式又称直接存取方式,其基本思 想是在外围设备和内存之间开辟直接的 数据交换通路。
(5)硬件层实现物理I/O的操作
26
1. I/O硬件特点
设备组成
I/O设备一般由机械和电子两部分组成, 把这两部分分开处理,以提供更加模块化, 更加通用的设计
物理设备
机械部分是设备本身(物理装臵)
设备控制器
电子部分叫做设备控制器或适配器。在小型 和微型机中,它常采用印刷电路卡插入计算 机中(接口)完成设备与主机间的连接和通 讯
15
2. I/O软件的目标
在设计I/O软件时的一个关键概念是设备独立 性。用户在编写使用软盘或硬盘上文件的程序 时,无需为不同的设备类型而修改程序就可以 使用 与设备独立性密切相关的是统一命名这一目标。 一个文件或一个设备的名字只应是一个简单的 字符串或一个整数,不应依赖于设备 出错处理是I/O软件的另一个目标。一般来说, 数据传输中的错误应尽可能地在接近硬件层上 处理 最后一个问题是可共享设备和独占设备的处理 问题
27
控制器卡上通常有一个插座,通过电缆与设 备相连 控制器和设备之间的接口是一个标准接口, 它符合ANSI、IEEE或ISO这样的国际标准
CPU
控 制 逻 辑 电 路
控制寄பைடு நூலகம்器
状态寄存器
数据寄存器
外 部 设 备
许多设备的控制器内部还有数据缓冲区
28
2. 设备接口
操作系统将命令写入控制器寄存器中,以实 现输入/输出
3. 理解I/O的工作过程与结构是理解操作 系统的工作过程与结构的关键
4. 与其他功能联系密切,特别是文件系 统
4
5.1.2 I/O设备的分类
1. 按使用特性分
存储型设备 输入型设备(外设主机) 输出型设备(主机外设) 输入输出型设备(交互型设备)
2. 按数据组织分
块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息
5
3.按外部设备的从属关系分
系统设备
指操作系统生成时,登记在系统中的标准设备 (如终端、打印机、磁盘机等)
用户设备
指在系统生成时,未登记在系统中的非标准 设备。对于这类设备的处理程序由用户提供, 并将其纳入系统,由系统代替用户实施管理。 (如A/D,D/A转换器,CAD所用专用设备)
6
4. 按资源分配角度分
凡是可对存储器操作的指令都可对I/O端 口操作 不需要专门的I/O指令 I/O端口可占有较大的地址空间
缺点:占用内存空间
39
I/O控制的四种技术
程序控制
中断驱动 直接存储器存取(DMA)
通道
40
1.程序控制I/O技术
也称循环I/O测试方式,忙—等待方式。
CPU启动外设后要不断询问外设的忙闲, 当外设为“忙”时,CPU不断对它进行 测试,直到外设为“闲”时进行输入输 出。 在此期间CPU不能进行其它操作。
第五章 5.1 概 述
设备管理
5.2 I/O软件的组成
5.3 I/O硬件特点
5.4 I/O控制技术
5.5 设备有关技术
5.6 设备分配与设备处理
1
5.1 概 述
5.1.1 I/O的特点 5.1.2 I/O设备的分类 5.1.3 设备管理的设计目标与任务
2
5.1.1 I/O的特点
1. I/O性能经常成为系统性能的瓶颈
设备传送或管理的数据应该是安全的、不被 破坏的、保密的
12
设备管理的目标和任务(续)
6)与设备无关性(设备独立性)
用户在编制程序时,使用逻辑设备名,由系 统实现从逻辑设备到物理设备的转换 用户能独立于具体物理设备而方便的使用设 备
用户申请使用设备时,只需要指定设备类型, 而无须指定具体物理设备,系统根据当前的 请求,及设备分配的情况,在相同类别设备 中,选择一个空闲设备,并将其分配给一个 申请进程
20
21
5. 设备独立的软件
1)独立于设备的软件的基本任务是实现所有 设备都需要的功能,并且向用户级软件提供 一个统一的接口 2)如何给文件和设备这样的对象命名是操作 系统中的一个主要课题。独立于设备的软件 负责把设备的符号名映射到正确的设备驱动 上 3)设备保护
系统如何防止无权存取设备的用户存取设备 呢?
6. 用户空间的I/O软件
尽管大部分I/O软件都包含在操作系统中, 但仍有一小部分是由与用户程序连接在一起 的库过程,甚至完全由运行于核外的程序构 成。 系统调用,包括I/O系统调用,通常由库过 程实现
这些过程所做的工作只是将系统调用时所用 的参数放在合适的位臵,由其它的I/O过程 实际实现真正的操作
相关文档
最新文档