首页 > 其他分享 >操作系统面试题

操作系统面试题

时间:2022-12-19 09:35:48浏览次数:36  
标签:面试题 操作系统 队列 管道 线程 消息 进程

操作系统基础

什么是操作系统?

1.操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的程序。

2.操作系统本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源。

3.操作系统存在屏蔽了硬件层的复杂。

4.操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。

系统调用

根据进程访问资源的特点,我们可以把进程在系统上运行分为两个级别:

1.用户态:用户态运行的进程可以直接读取用户程序的数据。

2.系统态:可以简单的理解系统运行的进程和程序几乎可以访问计算机的任何资源,不受限制。

系统调用按功能大致可以分为下面几类:

1.设备管理:完成设备的请求或释放,以及设备启动等功能。

2.文件管理:完成文件的读、写、创建及删除等功能。

3.进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。

4.进程通信:完成进程之间的消息传递或信号传递等功能

5.内存管理:完成内存的分配、回收以及获取作业占用内存区大小及地址。

进程和线程

线程是进程划分为更小的运行单位,一个进程在其执行的过程中可以产生多个线程。线程和进程最大的不同在于基本上各进程是独立的,而线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。

进程间的通信方式

1.管道/匿名管道(Pipes):用于具有亲缘关系的父子进程或者兄弟进程之间的通信。

2.有名管道(Names Pipes):匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循先进先出。有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。

3.信号(Signal):信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发送。

4.消息队列(Message):消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识。管道和消息队列的通信数据都是先进先出的原则。与管道不同的是,消息队列存放在内核中,只有在内核重启或显示地删除一个消息队列时,消息队列才会真正地删除。消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

5.信号量(Semaphores):信号量是一个计数器,用于多进程对共享数据的访问,信号量的意图在于进程同步。这种方式主要解决与同步相关的问题避免竞争条件。

6.内存共享(Shared memory):使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种方式需要依赖某种同步操作,如互斥锁和信号量等。

7.套接字(Sockets):此方法主要用于在客户端和服务器之间通过网络进行通信。套接字是支持TCP/IP的网络通信的基本操作单元,可以看作是不同主机之间的进程进行双向通信的端点。简单的说就是通信双方的一种约定,用套接字中的相关函数完成通信过程。

 

标签:面试题,操作系统,队列,管道,线程,消息,进程
From: https://www.cnblogs.com/baifeili/p/16549969.html

相关文章