操作系统知识点总结(笔试面试用)

本文深入探讨了操作系统中的关键知识点,包括进程管理中的进程和线程的区别、状态转换、孤儿与僵尸进程,以及线程的五种状态。讲解了进程间的通信方式,如共享存储器、消息传递、管道、信号量和套接字等。此外,还介绍了线程同步的多种方法,如互斥量、信号量、事件和临界区。最后提到了操作系统调度算法,如FCFS、SJF、优先级调度和时间片轮转,并讨论了死锁的产生条件和处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

进程管理

1.进程和线程以及他们的区别
进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发性
线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发
一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程为存在;
进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。从操作系统的角度来看,进程=程序+数据+PCB(进程控制块)
2.进程有哪几种状态

  • 就绪状态:进程已获得处理机以外的所需资源,等待分配处理机资源
  • 运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数
  • 阻塞状态:进程等待某种条件,在条件满足之前无法执行
    在这里插入图片描述
    孤儿进程,僵尸进程?产生的原因,这两种进程对系统的影响(如:会不会消耗系统资源,如何处理这两种进程,在编程时如何避免这两种进程)
    3.线程有哪几种状态
  • new:在这个状态中,一个线程还没有开始
  • runable:在这个状态中,线程在java虚拟机上执行
  • blocked:在这个状态线程被阻塞
  • waiting:等待状态,等待被唤醒
  • time waiting:等待时间满后自动环形
  • terminated:停止
    线程的状态转换如下:
    在这里插入图片描述
    4.进程间的通信
    进程之间的信息交换成为进程通信。根据交换信息量的多少,进程通信分为两种类型:低级通信高级通信。低级通信传送的信息量少,主要用于控制信息的传送;高级通信是指进程间大批量的数据交换。
    进程通信的类型
    (1)共享存储器通信:交互进程之间有一个可以直接访问的共享存储区,并发进程通过对这个共享存储区的读和写进行信息交换。如基于共享数据结构的通信方式(如公用数据结构,只适合传递少量数据,如信号量,低级);基于共享存储区的通信方式(如公共内存块,高级),在这种通信方式下,操作系统只负责为通信进程提供可使用的存储空间和进程同步工具,数据交换由用户进程通过读、写命令来完成。
    (2)消息传递系统高级):进程之间的数据交换以格式化的消息为单位,放在内核中。这种通信方式可以进一步划分为:直接通信方式(通过发送和接受原语来实现)和间接通信方式(如邮箱通信方式)。
    邮箱通信方式
    邮箱通信方式
    备注:一般地,把系统态下执行的某些具有特定功能的程序段成为原语;原语的执行必须是连续的
    (3)管道(pipe)及命名管道(named pipe,FIFO)通信方式:管道:是指连接一个读进程和一个写进程之间用以实现通信的共享文件,也称pipe文件。UNIX中的管道是一个环形的缓冲区,允许两个进程以生产者/消费者模型进行通信。管道可用于具有亲缘关系的父子进程间的通信,命名管道除了具有管道所具有的功能外,他还允许无亲缘关系进程间的通信。
    (4)信号(signal)信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生,信号产生的条件:按键、硬件异常,进程调用kill函数将信号发送给另一个进程、用户调用kill命令将信号发送给其他进程,传递的消息比较少用于通知接收进程某个时间已经发生
    (5)信号量:主要作为进程之间(系统西濠梁)及同一种进程的不
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值