美文网首页
计算机操作系统(1)

计算机操作系统(1)

作者: 萌萌哒的小叽叽丶 | 来源:发表于2018-12-19 13:10 被阅读0次

    概述

    摘自 github CS-Notes - 计算机操作系统


    一、基本功能

    1. 内存管理 *

    内存分配、地址映射、内存保护与共享、虚拟内存、...

    2. 进程管理 *

    进程控制、进程同步、进程通信、死锁处理、处理机调度、...

    3. 文件管理

    文件存储空间管理、目录管理、文件读写管理和保护、...

    4. 设备管理

    缓冲管理、设备分配、设备处理、虚拟设备、...(完成用户的I/O请求,方便用户使用各种设备,提高设备利用率)


    二、基本特征

    1. 并发 *

    并发 宏观上在一段时间内能同时运行多个程序(实际上是交替执行)
    并行 同一时刻能运行多个指令,需要硬件支持(如流水线、多处理器)
    操作系统引入进程线程实现并发。

    2. 共享

    共享 系统中的资源可以被多个并发进程共同使用
    两种共享方式:互斥共享同时共享
    互斥共享的资源称为临界资源,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。

    3. 虚拟

    虚拟技术 把一个物理实体转换为多个逻辑实体
    两种虚拟技术 ——
      时分复用技术 :如多个进程能在同一个处理器上并发执行使用时分复用技术,每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
      空分复用技术 :虚拟内存使用了空分复用技术,将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间和物理内存使用页进行交换,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

    4. 异步 *

    异步 进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进
    异步的意义:A进程正在执行一个“读取某个大文件中的数据并执行计算”的任务,但是读数据这个IO操作很耗时间,而此时B进程正在等待A进程的完成任务,这样就会造成时间浪费。异步操作会在A进行IO操作的时候,将CPU使用权交给B进程,并保存自己当前的状态;待A进程完成IO操作,CPU使用权又回到A进程。


    三、系统调用

    如果一个进程在 用户态 需要使用 内核态 的功能,就进行 系统调用 从而陷入内核,由操作系统代为完成。

    系统调用流程

    Linux的主要系统调用

    进程控制: fork() , exit() , wait()
    进程通信: pipe() , shmget() , mmap()
    文件操作: open() , read() , write()
    设备操作: ioctl() , read() , write()
    信息维护: getpid() , alarm() , sleep()
    安全: chmod() , umask() , chown()


    四、内核

    1. 大内核 将操作系统功能作为一个紧密结合的整体放到内核 ;各模块共享信息,因此性能很高。
    2. 微内核 将一部分操作系统功能移出内核降低内核复杂性。移出的部分根据分层的原则划分成若干服务,相互独立 ;剩下来的那部分就构成了微内核
      在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态

    用户态和内核态之间频繁的切换会造成一定的性能损失

    微内核架构

    五、中断

    1. 外中断

    CPU 执行指令以外的事件引起,如 I/O 完成中断 ,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断控制台中断等。

    2. 异常

    CPU 执行指令的内部事件引起,如非法操作码地址越界算术溢出等。

    3. 陷入

    在用户程序中使用系统调用。

    相关文章

      网友评论

          本文标题:计算机操作系统(1)

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