操作系统

294 阅读5分钟

1.详细的介绍一下系统调用

1)介绍:应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统内核统一掌管。因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出请求服务,由操作系统内核代为完成。
2)过程:传递系统调用参数->执行陷入指令(用户态)->执行相应的内核请求程序处理系统调用(核心态)->返回用户程序

2. 进程之间的通信方式有哪些?

1)管道/匿名管道:用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。
2)有名管道:匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,有了有名管道。有名管道严格遵循先进先出。可以实现本机任意两个进程通信。
3)信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
4)消息队列:消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识。先进先出,但也可以按消息的类型读取,比FIFO更有优势。
5)信号量:信号量是一个计数器,用于多进程对共享数据的访问,意图在于进程间同步。
6)共享内存:多个进程可以访问的一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。
7)套接字

3. 死锁是什么,产生死锁的四个必要条件,如何处理死锁问题?

1)死锁:通俗的讲就是两个或多个进程无期限的阻塞、相互等待的一种状态。
2)死锁的四个必要条件:互斥、不可剥夺、请求和保持、循环等待。(户部请循)
3)死锁预防:破坏不剥夺条件、破坏请求和保持条件、破坏循环等待条件。
4)死锁避免:银行家算法。

4. 进程的调度算法

先来先服务、短作业优先、时间片轮转、多级反馈队列、优先级

5.页面置换算法

1)OPT页面置换算法(最佳页面置换算法)
2)FIFO页面置换算法
3)LRU页面置换算法(最近最久未使用页面置换算法)
4)LFU页面置换算法(最少使用页面置换算法)

6.什么是虚拟内存?

让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。虚拟内存使用部分加载的技术,让一个进程或者资源的某些页面加载进内存,从而能够加载更多的进程,甚至能加载比内存大的进程,这样看起来好像内存变大了,这部分内存其实包含了磁盘或者硬盘,并且就叫虚拟内存。

7.虚拟内存的实现方式

请求分页、请求分段、请求段页式存储管理。

8.什么是进程?什么是线程?两者的区别?

进程:资源分配的最小单位
线程:调度的最小单位
进程是为了更好地使多道程序并发执行,以提高资源利用率和系统吞吐量。线程是为了减少程序在并发执行是所付出的时空开销,提高操作系统的并发性能。

9. 操作系统的四大特性是什么?

1)并发:指两个或多个事件在同一时间间隔内发生。
2)共享:指的的是系统中的资源可供内存中多个并发执行的进程共同使用。
3)虚拟:通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能。
4)异步:由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以“走走停停”的方式运行。

10. 操作系统的主要功能是什么?(处存设文)

1)处理机管理(包括进程控制、进程同步、进程通信、调度)
2)存储器管理(内存分配、内存包含、地址映射、内存扩充)
3)设备管理(缓冲管理、设备分配、设备处理)
4)文件管理(文件存储空间管理、目录管理、文件读/写保护)

11. 解释下操作系统中同步与异步?

1)同步:指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么,这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
2)异步:是指进程执行某个请求的时候不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理。

12. 临界区与互斥量的概念和区别

1)临界区:是指进程中访问临界资源的那段程序;
2)互斥量:是用来保证数据操作的完整性,使得在任一时刻,只有一个线程访问该对象。
3)区别:互斥量和信号量在系统的任何进程里都是可见的,也就是说,一个进程创建了一个信号量或互斥量,另一个进程试图去获取该锁是合法的。然而,临界区的作用范围仅限于本进程,其它进程无法获取该锁。