手把手教你如何玩转面试(操作系统)

        本篇是讲解关于JavaWeb岗位面试方面的一些对于操作系统知识的整理,当然,不只是需要知道这个方面的内容,还需要掌握其他方面的知识,我都根据自己的经历来进行了整理,方便大家进行系统化的学习,只有多复习多研究,才能对技术有更好的掌握,才能拿到更好的offer。

下面是其他方面的知识点,欢迎大家进行浏览

Java基础:https://blog.csdn.net/Cs_hnu_scw/article/details/79635874

数据结构:https://blog.csdn.net/Cs_hnu_scw/article/details/79896717

Web方向:https://blog.csdn.net/Cs_hnu_scw/article/details/79896165

数据库:https://blog.csdn.net/Cs_hnu_scw/article/details/82900559

计算机网络:https://blog.csdn.net/Cs_hnu_scw/article/details/79896621

其他方面的知识:https://blog.csdn.net/Cs_hnu_scw/article/details/79896876

思维导图github地址:git@github.com:qq496616246/MindMapping.git 或者 https://github.com/qq496616246/MindMapping.git​​​​​​​

一:操作系统总览

1:操作系统的组成部分有哪些?

(1)进程管理(Processing management):这里就引出了操作系统中的进程和线程的问题
(2)内存管理(Memory management):这里就引出了对于内存的内容,比如段式,页式,段页式和虚拟内存的内容;
(3)文件系统(File system):
(4)网络通讯(Networking)
(5)安全机制(Security)
(6)用户界面(User interface)
(7)驱动程序(Device drivers)

2:操作系统的特征

(1)并发:同一段时间内多个程序执行(注意区别并发和并行,前者是同一时刻的多个事件,后者是统一时间段内的多个事件)
(2)共享:系统中的资源可以被内存中多个并发执行的进线程共同使用
(3)虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个
(4)异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进

3:操作系统的主要功能

(1)处理机管理:处理机分配都是以进程为单位,所以处理机管理也被看做是进程管理。包括进程控制,进程同步,进程通信和进程调度
(2)存储器管理(或者内存管理):内存分配,内存保护,地址映射,内存扩充
(3)设备管理:管理所有外围设备,包括完成用户的IO请求;为用户进程分配IO设备;提高IO设备利用率;提高IO速度;方便IO的使用
(4)文件管理:管理用户文件和系统文件,方便使用同时保证安全性。包括:磁盘存储空间管理,目录管理,文件读写管理以及文件共享和保护
(5)提供用户接口:程序接口(如API)和用户接口(如GUI)

 

4:操作系统的主要目标是什么?

答:1)、方便性:操作系统使计算机更易于使用    
2)、有效性:操作系统允许以更有效的方式使用计算机系统资源。    
3)、可扩充性:在操作系统中,允许有效地开发,测试和引进新的系统功能。   
4)、开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境

二:进程和线程相关知识点

1:创建进程的原因有哪些?

(1)系统初始化
(2)执行了从事创建进程的一个系统调用,该系统调用被正在运行的进程所调用。
(3)用户请求创建一个新进程
(4)一个批处理作业的初始化

2:进程的组成部分有哪些?

①程序。作用:描述进程要完成的功能。
②数据集合。作用:程序在执行时所需要的数据和工作区。
③程序控制块。作用:包含进程的描述信息和控制信息。它是进程存在的唯一标志。

3:进程创建的过程

1) 申请空白PCB。为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。
2) 为新进程分配资源。为新进程的程序和数据以及用户栈分配必要的内存空间。显然,此时操作系统必须知道新进程所需要的内存大小。
3) 初始化进程控制块。PCB的初始化包括:
    ①初始化标识信息,将系统分配的标识符和父进程标识符,填入新的PCB中。
    ②初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶。
    ③初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式的方式提出高优先级要求。
4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中。

4:进程销毁的原因有哪些?

(1)进程执行完,正常退出。(自愿的)
(2)进程执行过程中,出错退出。(自愿的),比如:试图打开不存在的文件
(3)进程执行过程中,出现严重错误。(非自愿的),比如执行了非法指令,除数是零
(4)被其他进程杀死。(非自愿的)比如,某个进程执行一个系统调用通知操作系统杀死某个其他进程。

 

3:进程和程序之间的区别?(进程与线程之间的区别在前面的知识点已经说了)

(1)进程是程序及其数据在计算机的一次运行活动,是一个运行过程,是一个动态的概念。进程的运行实体是程序,离开程序的进程没有存在的意义。而程序是一组有序的指令集合,是一种静态概念。
(2)进程是程序的一次执行过程,它是动态地创建和消亡的,具有一定的生命周期,是暂时存在的;而程序则是一组代码的集合,它是永久存在的,可长期保存。
(3)一个进程可以执行一个或几个程序,一个程序也可以构成多个进程。进程可以创建进程,而程序不能形成新的程序。
(4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。
(5)进程具有并发性,而程序没有;

 

4:进程的状态有哪些?

分为三种情况;

(1)三种状态:

(2)五种状态:

(3)七种状态:

6:进程同步的含义和原则

答:多进程虽然提高了系统资源利用率和吞吐量,但是由于进程的异步性可能造成系统的混乱。进程同步的任务就是对多个相关进程在执行顺序上进行协调,使并发执行的多个进程之间可以有效的共享资源和相互合作,保证程序执行的可再现性
同步机制需要遵循的原则: 
1. 空闲让进:当没有进程处于临界区的时候,应该许可其他进程进入临界区的申请 
2. 忙则等待:当前如果有进程处于临界区,如果有其他进程申请进入,则必须等待,保证对临界区的互斥访问 
3. 有限等待:对要求访问临界资源的进程,需要在有限时间呃逆进入临界区,防止出现死等 
4. 让权等待:当进程无法进入临界区的时候,需要释放处理机,边陷入忙等
经典的进程同步问题:生产者-消费者问题;哲学家进餐问题;读者-写者问题

 

7:孤儿进程和僵死进程是什么?它们各自的危害是什么?

(1)孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

危害:由于父进程已经死亡,系统会帮助父进程回收处理孤儿进程。所以孤儿进程实际上是不占用资源的,因为它终究是被系统回收了。不会像僵尸进程那样占用ID,损害运行系统

(2)僵死进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程

危害:如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。

危害的场景:例如有个进程,它定期的产 生一个子进程,这个子进程需要做的事情很少,做完它该做的事情之后就退出了,因此这个子进程的生命周期很短,但是,父进程只管生成新的子进程,至于子进程 退出之后的事情,则一概不闻不问,这样,系统运行上一段时间之后,系统中就会存在很多的僵死进程,倘若用ps命令查看的话,就会看到很多状态为Z的进程。 严格地来说,僵死进程并不是问题的根源,罪魁祸首是产生出大量僵死进程的那个父进程。因此,当我们寻求如何消灭系统中大量的僵死进程时,答案就是把产生大 量僵死进程的那个元凶枪毙掉(也就是通过kill发送SIGTERM或者SIGKILL信号啦)。枪毙了元凶进程之后,它产生的僵死进程就变成了孤儿进 程,这些孤儿进程会被init进程接管,init进程会wait()这些孤儿进程,释放它们占用的系统进程表中的资源,这样,这些已经僵死的孤儿进程 就能瞑目而去了

8:进程间的通信方式有哪些(IPC)?

答:进程通信就是指进程间的信息交换,交换信息可以使一个状态,也可以是很多的byte。进程间同步互斥也存在信息的交换,因此也属于是一种IPC,属于是低级通信。该低级通信存在的问题:1)通信的数据量太少;2)通信对用户不透明(数据的传递或者同步互斥都需要程序员实现)

高级通信机制(高级通信的通信细节被OS隐藏,因此使用起来增加方便而且可以传送大

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值