美文网首页
操作系统基础知识

操作系统基础知识

作者: 小杨不想努力了 | 来源:发表于2022-01-21 00:02 被阅读0次
  1. 进程和线程的区别

    img
    • 进程是系统进行资源分配和调度的一个独立单位, 线程是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,最小的 CPU 执行单元。
    • 地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
    • 资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
    • 执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
    • 进程切换时,消耗的资源大,效率不高。所以涉及到频繁的切换时,使用线程要好于进程。
    • 作用:进程,使多个程序并发执行,以提高系统的资源利用率和吞吐量;线程,减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
    • 一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
  2. 什么是死锁?死锁的四个必要条件

    死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用,它们都将无法推进下去。此时系统处于死锁状态或系统产生了死锁。

    四个必要条件

    • 互斥

      资源一次只有被一个进程使用。如果另一进程申请该资源,那么申请进程应等到该资源释放为止。

    • 占有并保持

      —个进程应占有至少一个资源,并等待另一个资源,而该资源为其他进程所占有。

    • 不可剥夺

      进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放。

    • 循环等待

      指在发生死锁时,必然存在一个进程——资源的环形链:有一组等待进程 {P0,P1,…,Pn},P0 等待的资源为 P1 占有,P1 等待的资源为 P2 占有,……,Pn-1 等待的资源为 Pn 占有,Pn 等待的资源为 P0 占有。

  3. 什么是虚拟内存?虚拟内存机制是通过什么手段来实现的?操作系统页面置换算法?重点其中的LRU算法->延伸leetcode146题

    参考:https://blog.csdn.net/u014454538/article/details/99882141

    1. 虚拟内存实质

      将进程的地址空间叫做虚拟地址空间,对这片空间进行分块;使用某些机制,如分页机制、分段机制、段页式机制,将每个页映射到物理内存中,即将虚拟地址映射为物理地址。这样进程访问的是虚拟地址,内部会被转化成存储了代码或数据的物理地址,从而访问到想要的代码或数据。

    2. 优点

      • 通过使用虚拟内存技术,可以将物理内存扩大成更大的虚拟内存,从而不用担心小容量的内存对程序设计的限制。
      • 逻辑内存与物理内存分开外,虚拟内存允许文件和内存通过共享页而为多个进程所共享。
    3. 如何实现虚拟内存?

      通过分页分段段页式三种机制,实现虚拟内存。

      • 分页

        将进程的虚拟地址空间划分成页,虚拟地址页号 + 偏移量组成。通过查找页表中的页表项(PTE),可以获得该页对应的物理内存页框号页框号 + 虚拟地址中的偏移量构成物理地址,进程便可以访问到代码或数据。

      • 分段

        我们可以把内存看作多个段,每个段构成一个独立的地址空间。与分页相比,每个段的大小是不固定的,且可以动态增长

      • 段页式

        将进程的地址空间划分成多个段,每个段有划分成多个页。

        这样可以既拥有分段共享和保护的优点,还能拥有分页的虚拟内存功能。

    4. 页面置换算法

      • 最佳置换算法(OPT)

        选择置换下次访问距离当前时间最长的那些页。

      • 先进先出置换算法(FIFO)

        总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。

      • 最近最少使用(LRU)

        选择上次访问时间距离当前最远的页进行置换。理论基础:根据局部性原理,这样的页是最近最不可能访问的。

  1. 计算机内存和磁盘的关系

    计算机系统出了内存之外,还有一个非常重要的硬件,那就是磁盘。他们都是用于计算机存储,但是内存是利用电流来实现存储,而磁盘是利用磁效应来实现存储,并且,从存储容量来看, 内存是高速高价,而磁盘则是低速廉价。在计算机这个系统中,高速小容量的内存与低速高容量的磁盘进行协同作业。

    我们知道计算机是利用CPU进行数据的运算的,但CPU只能对内存中的数据进行运算,而对于磁盘中的数据是不能运算的。如果要运算磁盘中的数据,必须先把磁盘中的数据读入内存,CPU才能进行运算。

相关文章

  • 【操作系统笔记】操作系统的基本概念

    往期相关文章:【操作系统基础知识】进程管理 【操作系统基础知识】文件管理 【操作系统基础知识】内存管理 1.概念 ...

  • 【操作系统笔记】操作系统内存管理和jvm内存管理的对比和关系

    在上一次的文章 【操作系统基础知识】内存管理 里学习了操作系统的内存管理的基础知识,今天做个延伸拓展,来学习从操作...

  • 操作系统基础知识

    操作系统基础知识 计算机基础知识主要讲到两个重要的主题: 操作系统为程序分配内存的策略 线程和线程安全 程序运行内...

  • 【JVM笔记】Java中的进程管理

    前一篇文章【操作系统基础知识】进程管理 主要是操作系统相关的基础知识。本篇文章将从jvm的角度研究学习java中的...

  • 操作系统

    源自https://www.cnblogs.com/xdyixia/p/9274909.html 操作系统基础知识...

  • linux操作系统基础知识有哪些

    内容来源(公众号:PHP版WEB项目)linux操作系统基础知识:1、操作系统区分物理内存和虚拟内存;2、了解内存...

  • iOS高级进阶

    基础知识 数据结构 操作系统 编译原理 Python语言 HTTP 工具 Charles (HTTP/HTTPS)...

  • 操作系统知识点大总汇

    一、操作系统基础知识 操作系统的作用:用户接口、存储管理、文件管理、设备管理、处理机管理。 1.存储管理: 2.处...

  • Android应用基础知识

    应用基础知识 Android操作系统是一种多用户Linux系统,其中的每个Android 操作系统是一种多用户 L...

  • 笔记:计算机基础知识和Java IO

    计算机基础知识 内核空间:专门给操作系统用的【物理】内存空间(操作系统的专属空间)用户空间:给用户程序使用的【虚拟...

网友评论

      本文标题:操作系统基础知识

      本文链接:https://www.haomeiwen.com/subject/xqarhrtx.html