计算操作系统

一 操作系统基础

1.1 什么是操作系统?

  1. 操作系统(Operating System OS)用来管理计算机硬件与软件资源的程序。
  2. 本质上操作系统是一个软件程序。
  3. 操作系统为用户提供一个可视化与系统交互的界面,如windows,linux。
  4. 操作系统分为内核与外壳(外壳,就是来控制内核的程序;内核,就是能直接操作硬件的程序)。

1.2 系统调用
进程在系统上运行的两个级别:

  1. 用户态:可直接读取用户程序的数据。
  2. 系统态:几乎可以访问任何计算机资源,不受限制。
    普通的程序基本是用户态,如果涉及到 文件管理 等系统级别的操作就需要系统调用的的方式给系统发请求,具体操作由操作系统完成。

二 进程和线程

2.1 进程和线程的区别?
进程是操作系统资源分配的基本单位,而线程是CPU任务调度和执行的基本单位。他们是包含关系,进程包含线程。

2.2 进程的状态

  1. 创建态:刚刚创建,未达到就绪态。
  2. 就绪态:进程具备运行条件,只要处理器调用就可以运行。
  3. 运行态:进程在处理器上运行,单核处理器(一个CPU)一次只能运行一个进程。
  4. 阻塞态:等待某一事件而暂停,即使处理器空闲也不能运行。
  5. 结束态:进程正在消失,可能是正常退出,也可能是其他原因中断退出。

2.3 进程间的通信

  1. 管道/匿名管道:主要用于父子或兄弟等具有亲缘关系的进程。
  2. 有名管道:可以用于无亲缘关系的进程。
  3. 信号量:通知进程某个事件已经发生。
  4. 消息队列:先进先出,的消息链表。 它克服了,管道只能承载字节流,和信号承载信息少的缺点。
  5. 信号量:他是一个计数器,用于进程间同步。
  6. 共享内存:多个进程共享的内存。
  7. 套接字(Sockets):主要用于客户端与服务器间通信,主要使用TCP/IP协议。

2.4 线程间同步方式

  1. 互斥量:如java的synchronized。
  2. 信号量:
  3. 事件:Wait/Notify

2.5 进程调度算法

  1. 先到先服务调度算法:先进入就绪队列的先分配资源。
  2. 短作业有限调度算法:在队列中选一个估计耗时最短的。
  3. 时间片轮转调度算法:每个进程分配一个时间段。
  4. 多级反馈队列调度算法:既能时高优先级的得到响应,又能使短作业迅速完成。
  5. 优先级调度算法:先执行优先级高的。

三 操作系统内存管理

3.1 内存管理
内存管理主要负责内存的分配与回收,将逻辑地址转换成物理地址。

3.2 内存管理机制

  1. 块式管理:内存分成固定大小(块与块大小不一定相等)的块,每块一个进程。块中未利用的空间称之为碎片
  2. 页式管理:内存分为固定大小且大小相等的块,将块细分的更小,减少了碎片。 页表对应了逻辑地址与物理地址。
  3. 段式管理:内存分为一段一段,段比页更小,且段中有逻辑信息如**主程序段 MAIN、子程序段 X、数据段 D 及栈段 S **等, 段表对应了逻辑地址与物理地址。
  4. 段页式管理:先分成若干段,再分成若干页。

3.3 快表和多级页表

分页管理要点:
    1. 虚拟地址到物理地址的转换要快。
    2. 虚拟地址空间大,页表也会很大。
  1. 快表:加快虚拟地址到物理地址的转换,他就相当于缓存,缓存里存的物理地址。与Redis很相似。
  2. 多级页表:多级页表可以压缩页表占用的内存。

3.4 分页机制和分段机制的共同点和区别?

  1. 共同点:
  • 提高内存利用率,减少碎片。
  • 都是离散存储的,但是每个页和段中的内存是连续的。
  1. 区别:
  • 页的大小是固定的,由操作系统决定;而段的大小不固定,取决于我们当前运行的程序。
  • 分页只是为了方便操作系统管理内存,段中还包含逻辑信息更加满足用户需求。

3.5 逻辑(虚拟)地址和物理地址

  1. 逻辑地址:操作系统决定,如java中的引用。
  2. 物理地址:寄存器中的真实地址。

3.6 CPU寻址方式?

  • 虚拟寻址:CPU的内存管理单元把虚拟地址转换成物理地址,然后才可以访问真实物理内存。

3.7 为什么需要虚拟地址空间?

  1. 直接使用物理地址的缺点:
  • 用户可以访问任意内存,可能无意或有意破坏系统,造成系统崩溃。
  • 多程序运行困难,程序1使用了1xxx,程序2再去给1xxx赋值就会造成程序1崩溃。
  1. 使用虚拟地址的优点:
  • 程序可以使用连续的虚拟地址,访问不连续的物理地址。
  • 可以使用虚拟地址来访问大于物理地址的内存。
  • 不同进程使用的虚拟地址彼此隔离。一个进程中的代码无法更改正在由另一进程或操作系统使用的物理内存。

猜你喜欢

转载自www.cnblogs.com/qifengle1412/p/12911839.html
今日推荐