操作系统
- 线程与进程的区别
根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位
资源开销:每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,线程之间切换的开销小。
包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻量级进程。
内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间是相互独立的
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
二、实现多线程的方式Java多线程实现方式:继承Thread类、实现Runnable接口
三、rip是什么
RIP(路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统内路由信息的传递。RIP基于距离矢量算法,使用“跳数”来衡量到达目标地址的路由距离。
四、进程调度算法
1、先来先服务调度算法2、短作业(进程)优先调度算法3、时间片轮转法4、多级反馈队列调度算法5、优先权调度算法1) 非抢占式优先权算法2) 抢占式优先权调度算法
五、操作系统有哪些功能
操作系统有五大功能1、处理机管理 2、存储管理 3、设备管理4、文件管理5、进程管理
六、进程管理
进程的状态,进程状态就绪和等待状态的区别是什么
进程控制模块(PCB):PCB与进程同生死,创建一个进程就是为其建立一个PCB,当进程被撤消时,系统就回收它的PCB;对进程管理也通过对PCB管理来实现,所以进程控制块是进程存在的唯一实体。PCB的信息:进程标识符:它用于唯一地标识一个进程。
七、进程通信的方式:
可以分为直接通信和间接通信。
直接通信:进程必须正确的命名对方,必须有明确的发送方,message,接收方。
间接通信:进程定向地从消息队列接收消息,每个消息都有一个唯一的ID,只有他们共享了一个消息队列,进程才能通信。具体的通信方式有信号,管道,消息队列,共享内存。
八、磁盘管理
空闲块管理:通常有三种方式:一种是采用磁盘块表法,一种是采用磁盘块链法,另一种可选办法是采用位示图表示法。
空闲表法适合于文件的连续分配方式。操作系统为每个文件分配一个连续的存储空间,并为所有的存储空间建立一个空闲表,每个空闲区对应一个空闲表项,表项包括空闲区第一块号和空闲区空闲块数等信息。
空闲链法在每个空闲块下设置了指向下一个空闲物理块的指针,所有的空闲块连接构成了一个空闲块链表。
位示图法为了表示磁盘块的使用情况,位示图表示法对每个磁盘块用一个比特位记录其使用情况,n个块的磁盘需要采用n位位图。
九、线程之间共享数据的方式
代码一致:可以用 Runnable 对象,这个 Runnable 对象中存放共享数据(卖票系统)
每个线程执行的代码不相同:
方法1:将需要共享的数据封装成一个对象,将该对象传给执行不同代码的Runnable对象。
方法2:将这些执行不同代码的Runnable对象作为内部类。
十、用共享存储方式通信会有什么问题,如何解决
两个进程对共享空间的访问必须是互斥的,即同一时间只允许一个进程访问该共享空间。进程用这种方式通信时,操作系统只负责提供共享空间和同步互斥工具。(如 P、V操作)其实,共享存储方式还分为了两种,分别是基于数据结构的共享、基于存储区的共享。
十一、临界区是什么
临界区指的是一个访问共用资源的程序片段,这些共用资源又无法同时被多个线程访问。当有线程进入临界区段时,其他线程或是进程必须等待,以确保这些共用资源是被互斥获得使用。只能被单一线程访问的设备,例如:打印机。
十二、死锁是什么。死锁产生的条件是什么、如何预防死锁,避免死锁,死锁发生的检查
产生死锁的原因:(1)系统资源不足(2)进程运行推进的顺序(3)资源分配不当
产生死锁的四个必要条件:(1) 互斥条件(2) 占有且等待(3)不可强行占有(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。