zoukankan      html  css  js  c++  java
  • 操作系统 --- 哈工大孙志岗70讲总结(视频1-12)

    看了B站上的孙老师视频,感觉太啰嗦了看完进程的看不下去了,这里给出个人总结。

    1.1 推荐书籍 :
    操作系统概念pdf
    现代操作系统pdf
     
    2.2操作系统有哪些
    IOS
    MacOS
    Linux
    Andriod
    Unix
    VxWorks --- 航天航空军事领域,嵌入式
    FreeBSD --- 服务器,稳定
    DOS --- 只能操作一个程序
     
    操作系统特点:管理硬件资源
     
    5.5
     
     
    INT(汇编指令:中断):中断后进入中断服务程序(一定是操作系统编写的)
     
    系统调用:应用程序执行INT指令,跳到中断服务程序(内核)
    当应用程序调用open()时,转换为汇编就是INT,然后传入 系统调用编号(要调用哪个系统调用)
    中断服务程序检查系统调用编号,找到程序的位置。
     
    strace -- 跟踪一个程序调用了那些系统调用
     
    printf()调用了write()
     
    问题:C语言中函数参数传递过程
    往栈中一个个压入参数,然后一个个取出
     
    问题:系统调用参数传递过程
    类似
     
    用户态的数据只能写入用户态的内存,内核态可以直接访问用户态的内存
    用户态不能直接访问内核态的内存。
     
    6.6
    系统程序:
    磁盘分区,磁盘快照,任务管理器,资源管理器(操作文件)
     
    7.7
    DOS:应用程序可以不经DOS操作系统使用硬件
    Solaris操作系统:
     
    8.8进程管理
    汇编指令:
    in指令 --- 直接操作硬件端口输入
    out --- 直接操作硬件端口读入
    这两个指令在用户态不允许执行
     
    计算机boot过程:
     
    执行BIOS程序(ROM中)
    选择存储设备(硬盘还是U盘等等)
    MBR放在硬盘的第一个扇区(1到512个字节)
    将MBR加载到0x7c00然后执行
     
     
    进程:(内存地址:0-max)
    PC和其他寄存器
    代码段(指令)
    数据段(编译阶段决定了的数据,比如helloworld的字符串)
     
    max最大可达4G
     
    进程切换 --- PCB(Precess Control Blocking)进程控制块
     
    1.进程切换之前将状态(寄存器等)存入PCB中
    2.操作系统内核选择下一个调度的进程
    3.加载下一个进程的PCB
     
    就绪PCB队列
    阻塞PCB队列
     
     
     
    问题1 由运行态到就绪态:进程切换之前由程序使用CPU,系统内核如何获得执行权
    使用中断(时钟中断,每隔一段时间发出中断,中断服务程序 -- 操作系统)
     
    问题2 由运行态到等待态 :
    由程序主动进入等待态,程序调用系统调用
     
    问题:需要降低进程切换的开销
    硬件方面:CPU设计完成:
    1.一个指令完成现场保存,比一个个PUSH快得多
    2.直接换一批寄存器组
     
    12 进程的创建
    子进程由父进程创建
    1.子进程和父进程资源完全共享 --- 嵌入式系统
    2.子进程共享父进程资源的一部分 --- Unix系统
    3.子进程和父进程之间没有任何关系  --- Windows
     
    a 父进程子进程同时运行
    b 父进程等待子进程工作完再运行
     
              1)子进程内存空间克隆父进程内存空间 --- Linux
              2)子进程从硬盘加载程序 --- Windows
     
     
     fork()  ---- 执行到fork()操作系统会在这里复制父进程,返回0给子进程返回大于0给父进程
  • 相关阅读:
    5.搜索-dfs、回溯、bfs
    4.排序算法
    3.二分查找
    2.双指针
    1.贪心算法
    【目录】leetcode刷题
    深度学习的优化与正则化
    什么是深度学习
    循环神经网络
    Failed to execute 'index' on 'IDBObjectStore': The specified index was not found.
  • 原文地址:https://www.cnblogs.com/coderlynn/p/8993467.html
Copyright © 2011-2022 走看看