操作系统常见面试题及答案

操作系统:从系统观点看,是计算机系统的一个系统软件,管理和控制计算机系统中的资源;从用户观点看,操作系统是用户与计算机之间的接口;从软件观点看,操作系统是程序和数据结构的集合。

1. 什么是进程(process)和线程(thread)?有何区别?

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位,可申请和拥有系统资源。从一定意义上讲,进程是一个应用程序在处理机上的一次执行过程。而线程是进程的一部分,进程包含多个线程在运行。

它不只是程序的代码,还包括当前的活动,通过程序计数器和处理寄存器的内容来表示。

进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体

在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位

总结:

进程:①定义②资源

线程:①独立最小②资源(互斥锁与信号量)③关系(线程与线程、线程与进程)

2. windows下的内存是如何管理的?

Windows提供了3种方法来进行内存管理:

虚拟内存,最适合用来管理大型对象或者结构数组;

内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据;

内存堆栈,最适合用来管理大量的小对象。

Windows操作内存可以分为两个层面:物理内存和虚拟内存。

物理内存由系统管理,不允许应用程序直接访问,应用程序可见的只有一个2G的地址空间,而内存分配是通过堆进行的,对于每个进程都有自己的默认堆,当一个堆创建后,就通过虚拟内存操作保留了相应大小的地址块(不占有实际的内存,系统消耗很小)

虚拟内存是进程运行时所有内存空间的总和,并且可能有一部分不在物理内存中,它只是内存管理的一种抽象,而物理内存就是我们平时所了解的内存条。

(虚拟内存地址还涉及到了页帧、偏移量等,后续在介绍)

补充:

操作系统中堆和栈的区别   参考:http://blog.csdn.net/speedme/article/details/22943191/

①.内存分配方面

堆:一般由程序员分配释放;栈:由编译器自动分配释放,存放函数的参数值、局部变量的值等。

②.申请方式方面

堆:需程序员自己申请,malloc;栈:由系统自动分配,int a。

③.系统响应方面

堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲链表中删除,并将该结点的空间分配给程序。

栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。

④.大小限制方面

堆:不连续,向高地址扩展。因为用用链表存储空闲区地址,所以不连续。

栈:连续,向低地址扩展。即:栈顶的地址和栈的最大容量是系统预先规定好的。


3.Windows消息调度机制是消息队列。

4.实时操作系统与分时操作系统

实时操作系统:在特定时间内完成特定任务实时性与可靠性

分时系统:在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

5.中断和轮询的特点

轮询:定时对各种设备轮流询问一遍有无处理要求,有要求的,加以处理。

中断:CPU在正常运行程序的过程中,由于预先安排或发生了各种内部或外部事件,使CPU中断正在运行的程序,而转到为响应的服务程序去处理。

中断提高了计算机系统CPU的效率,即CPU和外围设备的一些操作是并行地进行的,例如:主程序只是在设备A,B,C数据准备就绪时,才去处理A,B,C,进行数据交换,在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序。

中断具体过程:响应中断,保存现场,CPU屏蔽中断,执行中断程序,恢复现场,CPU响应中断。

6.什么是临界区?如何解决冲突?

临界区:每个进程中访问临界资源的那段程序。任何时候,处于临界区的资源不可多于一个。排队等待,进入临界区的进程要在有限时间内退出,以便其他进程能进入自己的临界区。

7.分段和分页

页是信息的物理单位,分页是为实现离散分配方式,以削减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

段是信息的逻辑单位,它含有一组其意义相对完整的信息,分段是为了更好的满足用户的需要。

总结:单位、目的

8.进程通信有哪些方式?

管道通信、消息通信、内存共享、信号、信号量、套接字

管道(pipe):允许无亲缘关系进程间的通信。

信号量(semophore):是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程不同线程之间的同步手段。

信号:用于通知接收进程某个事件已经发生。

共享内存:映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。

套接字:可用于不同及其间的进程通信。

9.七层模型与四层模型

OSI七层模型


网络层:资料传送的目的地寻址,再选择出传送资料的最佳路线;
链路层:负责网络上资料封包如何传送的方式;
物理层:在设备与传输媒介之间建立及终止连接。

TCP/IP四层模型


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

说法一:加电后,会触发CPU的reset信号,导致CPU复位,然后CPU会跳到执行指令。主要是做CPU初始化,确定CPU的工作模式,mmu初始化。建立页表段表,初始化中孤单控制器和中断向量表,初始化输入和输出,初始化nandflash,把OS的TEXT区加载到sdram,然后跳转到sdram的main()。

说法二:过程如下:bios自举(硬件检查):检查硬件等读取MBR(master boot record,主引导记录)转到MBR执行它的代码,它会检测活动分区把活动分区的引导扇区的引导代码装入内存运行引导代码引导代码装入该分区的操作系统也就是进入main()执行一系列的初始化,然后最终启动登录界面实现启动过程。

过程:reset(CPU复位)--->bios上电自检(硬件检查)--->读取MBR--->main()

11.存储过程是什么?有什么用?有什么优点?

存储过程(Stored Procedure)是一组为了完成特定功能的 SQL语句集,经编译后 存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它。在 创建时即在服务器上进行编译
存储过程的优点:
(1) 提高数据库执行速度。存储过程只在创造时进行编译,以后每次执行存储过程都 不需再重新编译,而一般SQL语句每执行一次就编译一次。
(2) 封装复杂操作。当对数据库进行复杂操作时(如对多个表进行update,insert,query,delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用;
(3) 存储过程可以重复使用,减少数据库开发人员的工作量;
(4) 安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
存储过程的缺点:
(1)如果 更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。
(2) 应用程序的可移植性差。由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。

12.你知道操作系统的内容分为几块吗?什么叫做虚拟内存?

操作系统的主要组成部分:进程管理、存储管理、文件管理和设备管理。
虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为4K。

13.进程有哪几种状态?

基本状态有3种,即ready(就绪),running(运行),wait(等待或阻塞)。

就绪:进程获得除处理机外的所有资源。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

14.分页式管理

用户程序的地址空间被划分成若干固定大小的区域,称为页,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。

15.PV操作和信号量

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的 下一个进程。信号量的值与相应资源的使用情况有关。 当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。
P操作为请求资源;V操作为释放资源

16.什么是死锁?其条件是什么?怎么避免死锁?

死锁:在两个或多个 并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它们现在保持着的资源,否则就不能向前推进。

死锁产生的原因主要是:(1)系统资源不足;(2)进程运行推进的顺序不合适;(3)资源分配不当。

产生死锁的必要条件

   (1)互斥(mutual exclusion),一个资源每次只能被一个进程使用;

   (2)占有且等待(hold and wait),一个进程因请求资源而阻塞时,对已获得的资源保持不放;

   (3)不可抢占(no preemption),进程已获得的资源,在未使用完之前,不能强行剥夺;

   (4)环形等待(circular wait),若干进程之间形成一种首尾相接的循环等待资源关系。

这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

17.逻辑地址与物理地址

用户程序中的地址称为 逻辑地址,逻辑地址的集合称为 地址空间;内存中的地址称为 物理地址,物理地址的集合称为 存储空间
例:若计算机CPU的有效长度为32位,内存为32M,则该计算机的存储空间为32MB,作业的地址空间为2的32次方B。

补充:

①交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。


参考:

http://blog.csdn.net/tiemaxiaosu/article/details/51941723

http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值