计算机基础知识面试题库
文职人员计算机面试题库

文职人员计算机面试题库
1.文职人员所需的基础计算机知识包括哪些方面?
2.请简要介绍常见的办公软件及其功能。
3. SQL是什么?在文职工作中,SQL的应用场景有哪些?
4.什么是邮件客户端?请举例说明常见的邮件客户端。
5.电子表格是什么?请举例说明常见的电子表格软件。
6.什么是数据备份?为什么数据备份在文职工作中十分重要?
7.什么是网络安全?在文职工作中应当如何保护网络安全?
8.请简要介绍一下常见的办公设备及其用途。
9.什么是云存储?请举例说明常见的云存储服务。
10.如何有效编写和管理电子文档?
11.请简要介绍一下网络会议系统的使用。
12.在文职工作中,经常会遇到需要创建和编辑PDF文件的情况,你知道如何操作吗?请简要说明。
13.什么是文件压缩?请举例说明常见的文件压缩软件。
14.什么是软件升级?为什么在文职工作中需要进行软件升级?
15.在进行文档排版时,你通常会使用哪些软件和技巧?
16.请举例说明一下如何使用快捷键提高办公效率。
17.什么是虚拟助手?在文职工作中,虚拟助手有哪些应用场景?
18.请简要介绍一下常见的聊天软件及其特点。
19.什么是数据分析?请举例说明常见的数据分析软件。
20.在进行数据录入和整理时,你通常会使用哪些工具和技巧?
以上的问题可以帮助文职人员了解基本的计算机知识和技能,并在日常工作中更高效地使用计算机和相关软件。
这些问题涵盖了办公软件、网络安全、文件管理、数据处理等多方面的内容,能够满足不同职位和岗位的需求。
在面试过程中,通过这些问题的回答,可以更好地评估应聘者在计算机应用方面的能力和熟练程度。
计算机基础面试题目及答案

计算机基础面试题目及答案一、概述计算机基础是计算机科学与技术的基础,是计算机专业学习和应聘岗位的重要内容。
面试中经常会涉及到计算机基础的问题,下面将介绍一些常见的计算机基础面试题目及答案。
二、操作系统1. 什么是操作系统?操作系统是计算机系统中的核心软件,负责管理计算机硬件资源并提供用户与计算机之间的接口。
2. 请简要描述操作系统的主要功能。
操作系统的主要功能包括:- 进程管理:负责进程的创建、调度和终止,以及进程间的通信与同步。
- 内存管理:管理计算机的内存资源,包括内存的分配、回收和地址转换。
- 文件系统:管理存储设备上的文件,包括文件的创建、读写和删除。
- 设备管理:管理计算机的硬件设备,包括设备的驱动、控制和分配。
- 用户接口:提供用户与计算机系统之间的交互界面。
3. 什么是进程和线程?进程是计算机中正在运行的程序的实例,具有独立的地址空间和资源。
线程是进程中的一个执行单元,一个进程可以包含多个线程,共享进程的地址空间和资源。
4. 进程和线程的区别是什么?进程和线程的主要区别有:- 资源开销:进程拥有独立的地址空间和系统资源,而线程共享进程的地址空间和系统资源,线程的创建和切换开销较小。
- 并发性:多个进程可以同时执行,进程间的切换开销较大;线程在同一个进程内执行,切换开销较小。
- 通信和同步:进程间通信需要通过进程间通信机制,而线程可以通过共享内存等方式直接进行通信和同步。
5. 什么是死锁?死锁是指两个或多个进程或线程因争夺系统资源而造成的一种僵局,各进程或线程都在等待对方释放资源,导致无法继续执行。
三、数据结构与算法1. 请简要描述数组和链表的特点,并举例说明它们各自适用的场景。
- 数组是一种线性数据结构,具有连续的内存空间,可以通过索引快速访问元素。
适用于对元素的随机访问和固定大小的场景,如数组中的元素都是同一类型的数据。
- 链表是一种非连续的数据结构,每个节点都包含数据和指向下一个节点的指针。
计算机专业基础知识面试题

计算机专业基础知识面试题1. 什么是计算机网络?计算机网络是指将若干台计算机和相关设备通过通信线路互相连接起来,以实现各类信息资料的共享、通信等功能的系统。
2. 计算机网络的分类有哪些?计算机网络可以根据覆盖范围、传输介质、拓扑结构、功能等多种方式进行分类。
常见的分类方式包括局域网(LAN)、城域网(MAN)、广域网(WAN);有线网络、无线网络;星型网络、环形网络、总线型网络、树形网络等;按功能分为数据通信网络、视频会议网络、语音通信网络等。
3. OSI七层模型是什么?OSI七层模型是一种用于理解计算机网络架构和通信协议的标准化的体系结构,它将网络通信分为七个互相关联的层次,从上至下依次为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
4. TCP/IP协议族是什么?TCP/IP协议族是指一套以TCP为核心、以IP为基础的协议集合,它是 Internet 中最常用的一种协议族。
它包括多种协议,常见的有TCP、UDP、IP、ICMP等。
5. 传输控制协议(TCP)和用户数据报协议(UDP)有什么区别?TCP是一种面向连接、可靠的传输协议,适用于需要可靠性的数据传输。
UDP是一种无连接、不可靠的传输协议,适用于需要快速传输、数据可靠性要求不高的场合。
TCP通过三次握手建立连接,UDP直接发送数据。
6. 什么是HTTP协议?HTTP(Hyper Text Transfer Protocol)协议是一种用于传输超文本的协议。
它是一种客户端与服务器之间的请求-响应式协议,客户端向服务器发送请求,服务器回送响应。
HTTP协议默认使用TCP传输数据,通常使用80端口。
7. TCP的三次握手和四次挥手分别是什么?TCP的三次握手指建立连接时,客户端向服务器发送SYN报文请求连接,服务器回复SYN+ACK报文确认,最后客户端发送ACK确认连接建立。
四次挥手则是关闭连接时,客户端向服务器发送FIN报文表示结束,服务器回复ACK确认收到,服务器发送FIN+ACK报文要求关闭,客户端回复ACK确认关闭。
计算机面试考试题及答案

计算机面试考试题及答案一、选择题1. 在计算机科学中,以下哪个选项不属于数据结构的范畴?A. 数组B. 链表C. 算法D. 栈答案:C2. 以下哪个选项是面向对象编程的核心概念?A. 封装B. 继承C. 多态D. 所有选项答案:D3. 在关系型数据库中,以下哪个命令用于创建新表?A. CREATE TABLEB. INSERT INTOC. SELECTD. DROP TABLE答案:A二、填空题1. 在计算机网络中,______协议负责在IP地址和MAC地址之间进行映射。
答案:ARP2. 在操作系统中,______是用于管理进程和线程的资源分配与调度。
答案:调度器3. 在HTML中,用于定义文档标题的标签是______。
答案:<h1>三、简答题1. 请简述什么是云计算,并列举至少两种云计算服务的类型。
答案:云计算是一种通过互联网提供计算资源、软件和服务的模式,用户无需拥有物理基础设施即可按需使用这些资源。
常见的云计算服务类型包括基础设施即服务(IaaS)和平台即服务(PaaS)。
2. 描述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期的主要阶段包括需求分析、系统设计、实现(编码)、测试、部署以及维护。
四、编程题1. 编写一个函数,用于计算并返回一个整数列表中所有元素的和。
示例代码(Python):```pythondef sum_of_elements(numbers):return sum(numbers)```2. 给定一个字符串,编写一个函数,返回字符串中每个字符出现的次数。
示例代码(Python):```pythondef count_characters(s):return {char: s.count(char) for char in set(s)}```五、案例分析题1. 假设你是一名系统管理员,你的公司最近遭受了一次网络攻击,攻击者通过SQL注入攻击获取了数据库的访问权限。
计算机面试题目及答案

计算机面试题目及答案计算机面试是求职者展示自己专业能力的重要环节,同时也是雇主筛选人才的关键步骤。
为了帮助求职者更好地准备面试,本文将为大家总结一些常见的计算机面试题目,并提供相应的答案。
以下是一系列涵盖不同技术领域的题目及解答,希望能对你的求职之路有所帮助。
1. 数据结构与算法:题目:请解释什么是二叉树?答案:二叉树是一种树型数据结构,每个节点最多有两个子节点。
左子节点在树中的位置相对于父节点在左侧,右子节点相对于父节点在右侧。
2. 网络与通信:题目:请解释什么是TCP/IP协议?答案:TCP/IP协议是互联网常用的协议之一,它是一组用于在互联网上进行通信的协议。
TCP负责将数据在计算机之间可靠地传输,IP则负责寻找发送数据的目标地址。
3. 操作系统:题目:请解释什么是进程和线程的区别?答案:进程是程序的执行实例,拥有自己的地址空间和系统资源。
线程是进程内的执行单元,共享进程的资源。
一个进程可以包含多个线程。
4. 数据库:题目:请解释什么是数据库事务?答案:数据库事务是一组被视为单独逻辑工作单元的数据库操作,要么全部成功执行,要么全部回滚。
事务可以确保数据库的完整性和一致性。
5. 编程语言:题目:请解释什么是面向对象编程?答案:面向对象编程是一种编程范式,将程序看作是一组相互作用的对象。
对象包含数据和方法,通过消息传递进行通信和交互。
6. 软件开发:题目:请解释什么是敏捷开发?答案:敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。
它强调团队合作、快速响应变化和频繁交付可工作软件。
以上是一些常见的计算机面试题目及其答案,希望能对你的面试准备有所帮助。
在面试过程中,除了准备好技术知识,还要展现自己的沟通能力和解决问题的能力。
祝你在求职过程中取得好的结果!。
计算机基础面试题库及答案

计算机基础面试题库及答案计算机基础知识是现代社会中必不可少的一项技能。
无论是求职面试还是日常工作中,对计算机基础知识的了解都能够提升我们的竞争力。
下面是一些常见的计算机基础面试题及其答案,希望对大家有所帮助。
一、操作系统1. 什么是操作系统?操作系统是管理计算机硬件和软件资源的系统软件。
它提供了一系列的功能,比如文件管理、内存管理、进程管理等,以便有效地协调和控制计算机系统的各项任务。
2. 请列举一些常见的操作系统。
常见的操作系统有Windows、Linux、Unix、Mac OS等。
3. 什么是进程和线程?进程是指计算机中正在运行的程序的实例。
线程是进程中的一个独立执行单元,一个进程可以包含多个线程。
4. 进程间通信的方式有哪些?进程间通信的方式有管道、共享内存、消息队列、信号量、套接字等。
二、数据结构与算法1. 什么是数据结构?数据结构是指数据对象及其之间的关系,以及对数据对象的操作或运算定义在这种关系上的一组函数。
2. 请列举一些常见的数据结构。
常见的数据结构有数组、链表、堆栈、队列、树、图等。
3. 什么是算法?算法是一系列解决问题的具体步骤,是解决问题的方法。
4. 请列举一些常见的算法。
常见的算法有排序算法(如冒泡排序、插入排序、快速排序)、查找算法(如二分查找)、图算法(如深度优先搜索、广度优先搜索)等。
三、网络与通信1. 什么是IP地址?IP地址是指互联网协议(Internet Protocol)地址,是用来唯一标识互联网上的计算机或网络设备的一串数字。
2. 什么是HTTP协议?HTTP协议是超文本传输协议(Hypertext Transfer Protocol)的缩写,是一种用于传输超文本数据的应用层协议。
3. 什么是TCP/IP协议?TCP/IP协议是传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol)的缩写,是互联网的基础协议。
计算机基础知识面试题目及答案

计算机基础知识面试题目及答案一、计算机基础知识1. 什么是二进制?答案:二进制是一种计算机使用的基础数制系统,仅包含数字0和1。
2. 什么是字节(Byte)?答案:字节是计算机表示数据的基本单位,通常由8个二进制位组成。
3. 请解释计算机的硬件和软件有什么区别?答案:计算机的硬件是指计算机的物理组件,如 CPU、内存和硬盘等。
而软件是指计算机程序及其相关数据,包括操作系统、应用程序和文件等。
4. 什么是操作系统?答案:操作系统是计算机系统的核心软件,负责管理和控制计算机的硬件和软件资源,提供给用户和应用程序一个可操作的接口。
5. 定义并区分编译和解释。
答案:编译是将程序源代码转化为机器可以执行的指令代码过程,生成可执行文件。
解释是逐行解析和执行源代码,不生成可执行文件。
二、计算机网络1. 什么是IP地址?答案:IP地址是互联网上唯一标识计算机的数字标签,用于在网络中进行通信和寻址。
2. 解释HTTP和HTTPS的区别。
答案:HTTP(超文本传输协议)是用于在Web浏览器和服务器之间传输数据的协议,而HTTPS(安全传输协议)是基于HTTP的安全版本,通过使用SSL/TLS加密保护数据传输的安全性。
3. 请说明什么是DNS服务器?答案:DNS服务器(域名系统服务器)负责将域名解析为对应的IP地址,使得用户在浏览器中输入域名后可以访问到对应的网站。
4. 什么是代理服务器?答案:代理服务器位于客户端和服务器之间,充当中间人的角色,通过转发请求和响应来增加网络资源的访问控制和性能优化。
5. 解释TCP和UDP的区别。
答案:TCP(传输控制协议)是一种面向连接的可靠传输协议,通过建立可靠的数据传输通道,确保数据的完整性和顺序。
UDP(用户数据报协议)是一种无连接的传输协议,将数据以数据包的形式发送,不保证数据的可靠性和顺序。
三、操作系统1. 解释进程和线程的概念。
答案:进程是计算机中正在执行的程序的实例,拥有独立的内存空间和系统资源。
计算机基础知识面试题目

计算机基础知识面试题目本文将提供一些常见的计算机基础知识面试题目,旨在帮助读者复习和巩固计算机基础知识,为面试做好准备。
以下是一些常见的计算机基础知识面试题目:一、操作系统1.什么是操作系统?2.操作系统的作用是什么?3.请解释进程和线程的区别?4.什么是死锁?如何避免死锁?5.解释虚拟内存的概念和作用?6.什么是进程调度算法?列举几种常见的进程调度算法。
二、数据结构与算法1.什么是数据结构?2.请解释栈和队列的概念及其应用场景。
3.解释二叉树的概念和基本操作。
4.什么是排序算法?请列举几种常见的排序算法及其时间复杂度。
5.请解释动态规划算法的概念和应用场景。
6.解释图的概念和基本操作。
三、计算机网络1.什么是计算机网络?2.解释OSI模型和TCP/IP模型。
3.请解释HTTP和HTTPS的区别。
4.什么是IP地址?IPv4和IPv6有何区别?5.解释TCP和UDP的区别及其应用场景。
6.什么是DNS?它的作用是什么?四、数据库1.什么是数据库?2.解释关系型数据库和非关系型数据库的区别。
3.请解释SQL语言的概念和基本操作。
4.什么是索引?为什么在数据库中使用索引?5.解释数据库事务的概念和ACID特性。
6.请解释数据库的三层架构模型。
五、编程语言1.什么是编程语言?2.解释编译型语言和解释型语言的区别。
3.请解释面向对象编程的概念和基本特性。
4.什么是异常处理机制?请列举几种常见的异常处理方法。
5.解释函数式编程的概念和特点。
6.请解释多态的概念及其应用场景。
以上是一些常见的计算机基础知识面试题目,希望对读者有所帮助。
在面试前,建议读者认真准备,并结合自己的实际情况进行适当的扩展和深入学习。
祝大家面试顺利!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于项目1. 明确你的项目到底是做什么的,有哪些功能2. 明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看并且清楚地指出从哪里调用到哪里、使用什么方式调用3. 明确你的模块在整个项目中所处的位置及作用4. 明确你的模块用到了哪些技术,更好一些的可以再了解一下整个项目用到了哪些技术操作系统1.操作系统的四大特性:a)并发性b)共享性c)虚拟性d)不确定性2.请叙述一下并发和并行两个概念的区别?a)并行是指两个或多个事件在同一时刻发生,并发是指两个或多个事件在同一时间间隔内发生。
3.什么是进程?什么是线程?a)“进程是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和调度的独立单位”。
进程是资源分配的基本单位。
b)线程也称为轻量级进程(LWP),是程序执行流量的最小单位,它是进程的一个实体,是系统独立调度和分派处理机的基本单位。
线程是操作系统调度的最小单位。
4.进程和线程的区别?从调度、并发性、拥有资源和系统开销四个方面来比较:a)调度。
在引入线程的操作系统中,把线程作为调度和分派CPU的基本单位,把进程作为资源分配的基本单位,显著提高了并发程度。
由于系统调度的基本单位是线程,所以每个进程至少创建一个线程,否则无法被调度。
b)并发性。
多线程可以提高服务的质量,在一个线程阻塞时,还有其他线程提供服务。
c)拥有资源。
进程是拥有资源的独立单位,线程自己不拥有系统资源,而是共享进程的资源(包括代码段、数据段即系统资源等)。
d)系统开销。
进程切换的开销远远大于线程切换的开销,进程的切换需要保存很多现场,但线程只需要保存和设置少量的寄存器内容,不涉及存储器管理方面的操作。
5.进程的特征:a)动态性:进程是动态产生和动态消亡的,有其生存周期。
b)并发性:一个进程可以与其他进程一起向前推进。
c)独立性:一个进程是一个相对完整的调度单位。
d)异步性:每个进程都已相对独立、不可预知的速度向前推进。
e)结构性:为了控制和管理进程,系统为每个进程设立一个进程控制块(PCB)。
6.进程有几种状态?a)就绪状态b)运行状态:单CPU环境下,系统处于运行状态的进程最多只有一个。
c)阻塞状态7.进程的组成:a)程序:b)数据集合:进程独有c)进程控制块(PCB):它和进程一一对应,PCB是操作系统能感知进程存在的唯一标识,操作系统正是通过管理PCB来管理进程的。
系统创建进程时,为每个进程分配PCB,进程执行完成后,系统释放PCB,进程也随之消亡。
8.进程的切换:a)进程上下文包含用户级上下文、系统级上下文、寄存器上下文b)进程上下文切换是核心态的切换,不发生在用户态。
c)用户态到核心态之间的转变是CPU模式的改变。
模式切换不同于进程切换,并不引起进程状态的改变。
9.为什么会提出线程这个概念?进程的缺点是什么?a)进程切换开销大b)进程通信代价大c)进程之间并发性粒度粗,并发度不高d)不适合并行计算和分布式并行计算的要求e)不适合客户-服务器计算的要求f)操作系统中引入进程的目的是为了使多个程序并发执行,改善资源的利用率以提高系统的吞吐量。
10.线程的分类:a)用户级线程– ULT,优点是线程切换不需要系统状态的转换,每个进程可以使用专门的调度算法来调度线程,不需要依赖操作系统底层的内核。
缺点是父进程阻塞会导致线程全都阻塞,不能真正的并行。
Java的线程就是一种用户级的线程。
b)内核级线程– KLT,优点是同一个进程内多个线程可以并行执行,缺点是线程状态转换时内核态的任务,通常很慢。
c)混合式线程–上两种的结合,有良好的效果。
11.进程控制块的作用?它是如何描述进程动态性质的?a)PCB是系统感知进程存在的唯一标志,是进程动态特性的集中反映,和进程一一对应,操作系统通过管理PCB来管理进程。
b)进程控制块包含进程描述信息,控制信息,和资源管理信息三类。
这些信息的变化反映进程的动态性质。
12.操作系统内核都包括哪些内容?a)一是支撑功能,包括中断处理,时钟管理和原语操作等,二是资源管理功能,包括进程管理,存储器管理和设备管理等。
13.处理机调度的三个分类?a)高级调度–作业调度b)中级调度–交换调度(内存和硬盘之间的交换)c)低级调度–进程调度(操作系统的核心)d)高级调度发生在创建新进程时,它决定一个进程能否被创建,或者是创建后能否被设置成就绪状态,以参与竞争处理器资源;中级调度反映到进程状态上就是挂起和解除挂起,它根据系统的当前符合情况决定停留在主存中的进程数;低级调度则是决定哪一个就绪进程或线程占有CPU运行。
14.批作业调度算法a)先来先服务b)最短作业优先c)响应比高者优先d)优先级算法15.进程调度的方式:a)非剥夺方式(非抢占式方式):优点是简单、易实现,系统开销小。
缺点是不太灵活,难以满足紧迫任务必须立即执行的要求。
实时系统不宜采用这种调度方式。
b)可剥夺方式(抢占式方式):优先权更高的进程优先执行。
16.进程调度的算法:a)先来先服务算法b)最短优先算法c)优先级算法:优先级高的先执行。
可以采用剥夺或非剥夺,剥夺方式更能反映优先的特点,但是会造成无穷阻塞和饥饿现象。
d)轮转算法:基本思想是系统把所有就绪进程按先来先服务的原则排成一个队列,且规定一个较小的时间单元,称为时间量或时间片,按时间片把CPU轮流分配给进入就绪队列的第一个进程使用,当进程的时间片使用完后,产生一个时钟中断,剥夺该进程的执行,将它送到就绪队列的队尾,等待下次调度。
轮转算法专门为分时系统设计。
e)多级队列调度算法:根据不同的进程,分配到不同的队列中,实行不同的调度算法。
一般按照优先级分成多个队列,高优先级的任务先做。
f)多级反馈队列调度算法:按优先级分配队列,但是优先级越高分配的时间片越小,如果没做完,自动移动到下一级队列继续做。
g)实时调度算法17.操作系统多任务的抢占机制是怎么实现的?18.哪种权限许可用户进入一个文件系统的目录?Read,Execute,Write,Access Controll19.Linux32位系统,应用程序最多能分配的内存大小?20.sleep和wait的区别?21.Win32下线程的基本模式?22.进程之间的关系?a)竞争关系:由于进程之间不知道彼此的存在,而使用了同一份资源,就会造成竞争。
资源竞争会出现饥饿和死锁。
b)协作关系23.什么是临界资源?什么是临界区?a)临界资源:把一次只允许一个进程使用的资源成为临界资源。
(独占性,如打印机,卡片输出机等)b)临界区:把每个进程中访问临界资源的那段代码从概念上分离出来,将其称为临界区。
即临界区是指对临界资源实时操作的程序的代码段。
c)相关临界区:并发进程中涉及相同临界资源的临界区。
相关临界区必须互斥执行。
24.什么是进程互斥?a)进程互斥是解决进程间竞争关系(间接制约关系)的手段。
指任何时刻不允许两个以上的共享该资源的并发进程同时进入临界区,这种现象称为互斥。
b)相关临界区的管理原则:互斥、空闲让进、有限等待。
25.进程同步的概念?进程同步指两个或多个进程为了合作完成同一个任务,在执行速度或某些确定的时序点上必须相互协调,即一个进程的执行依赖于另一个进程的消息,当一个进程到达了某一个确定点而没有得到合作伙伴发来的已完成消息时必须等待,知道该消息到达被唤醒后,才能继续向前推进。
26.进程同步和互斥的关系?a)进程的互斥实际上是进程同步的一种特殊情况,即主次使用互斥共享资源,也是对进程使用资源次序上的一种协调。
进程的互斥和同步统称为进程同步。
b)进程的互斥是进程间共享资源的使用权,这种竞争没有固定的必然联系,哪个进程竞争到资源的使用权,该资源就归哪个进程使用,直到它不再需要使用时才归还资源;而进程同步中,所涉及的共享资源的并发进程间有一种必然的联系,当进程必须同步时,即使无进程在使用共享资源,尚未得到同步消息的进程也不能去使用该资源。
27.信号量机制(PV操作):a)信号量机制的实现原理是两个或多个进程可以利用彼此间收发的简单信号来实现正确的并发执行,一个进程在收到一个指令信号前,会被迫在一个确定的或者需要的地方停下来,从而保持同步或互斥。
b)用信号量机制解决进程的同步和互斥问题有如下三个步骤:i.分析进程之间的制约关系ii.设置信号量iii.实施P、V操作28.同步的实现机制:a)临界区:通过多线程的串行化来访问公共资源或者一段代码,速度快,适合控制数据访问。
b)互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以可以保证公共资源不会同时被多个线程访问。
c)信号量:允许多个线程同时访问同一资源,但是需要限制同一时刻访问此资源的最大线程数目。
信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统PV操作相似。
d)事件(信号):通过通知操作的方式保持多线程同步,还可以方便的实现多线程的优先级比较的操作。
29.经典的同步问题:a)生产者消费者问题b)读者-写者问题(读者优先:信号量+读进程计数器rc;弱写者优先:信号量+读进程计数器rc+排队信号量read;强写者优先:信号量+读进程计数器rc+排队信号量read+写优先信号量write_first)c)哲学家就餐问题:是在多个线程之间共享多个资源时会不会导致死锁或饥饿的典型模型。
解决方案:i.每个哲学家取得手边的两个叉子才能吃面,即仅当一个哲学家左右两边的叉子都可用时,才允许他拿叉子,否则一个叉子也不取。
ii.偶数号哲学家先取手边的叉子,奇数号哲学家先取右手边的叉子。
d)嗜睡理发师问题30.进程通信的方式:a)共享存储:消息缓冲b)消息传递:信箱c)管道通信31.产生死锁的原因?a)进程竞争资源引起的死锁b)进程推进顺序不当产生死锁32.产生死锁的条件a)互斥条件:同时只能有一个进程持有资源b)请求和保持条件:一个进程请求资源得不到满足时,不释放占有的资源c)不剥夺条件:任何一个进程不能抢夺其他进程占有的资源d)循环等待条件:存在一个循环等待链,链中每个进程已获得资源,并分别等待前一个进程持有的资源。
33.处理死锁的方法:a)死锁预防:破坏产生死锁条件的任何一个或多个,如静态资源分配策略(2)和按序分配资源策略(4)。
b)死锁避免:采用银行家算法,每次分配都查看能否找到一种资源分配方法,使得已有的进程可以顺利完成任务,如果有,则分配,否则不分配。
c)死锁检测和解除:用软件来检查有进程和资源构成的有向图是否存在一个或多个回路。
34.分页存储管理、段式存储管理和段页式存储管理的基本思想:a)(分页) 利用分页存储管理,允许把一个作业存放到若干个不相邻的内存区域中,减少大碎片。