操作系统相关

本文详细介绍了操作系统中进程与线程的概念及其区别,包括进程的状态、通信方式和调度算法,以及线程的同步机制和死锁条件。同时,深入探讨了内存管理,包括连续分配和非连续分配的管理方式,以及虚拟内存的重要作用。重点阐述了页式、段式和段页式管理,以及虚拟内存如何扩展硬盘空间。
摘要由CSDN通过智能技术生成

操作系统

区别

​ 基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。

进程

状态

  • 创建状态(new)
  • 就绪状态(ready)
  • 运行状态(running)
  • 阻塞状态(waiting)
  • 结束状态(terminated)

进程间的通信方式

  • 管道/匿名管道(Pipes)
  • 有名管道(Names Pipes)
  • 信号(Signal)
  • 消息队列(Message Queuing)
  • 信号量(Semaphores)
  • 共享内存(Shared memory)
  • 套接字(Sockets)

调度算法

  • 先到先服务(FCFS)调度算法

  • 短作业优先(SJF)的调度算法

  • 时间片轮转调度算法

  • 多级反馈队列调度算法

    • 既能使高优先级的作业得到响应又能使短作业(进程)迅速完成,目前被公认的一种较好的进程调度算法,UNIX 操作系统采取的便是这种调度算法
  • 优先级调度

线程

线程间的同步方式

  • 互斥量(Mutex)

    • 采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。
  • 信号量(Semaphore)

    • 它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
  • 事件(Event) Wait/Notify

    • 通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。

死锁条件

  • 互斥
  • 占有并等待
  • 非抢占
  • 循环等待

内存管理

​ 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情。

内存管理机制

  • 连续分配管理方式

    • 块式管理
  • 非连续分配管理方式

    • 页式管理

      • 页式管理通过页表对应逻辑地址和物理地址。

        • 快表
        • 多级页表
    • 段式管理

      • 页式管理虽然提高了内存利用率,但是页式管理其中的页并无任何实际意义。 段式管理把主存分为一段段的,段是有实际意义的,每个段定义了一组逻辑信息
    • 段页式

      • 结合了段式管理和页式管理的优点

虚拟内存

​ 虚拟内存的重要意义是它定义了一个连续的虚拟地址空间,并且 把内存扩展到硬盘空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值