zoukankan      html  css  js  c++  java
  • 信息安全系统设计与实现第六周:《Unix/Linux系统编程》第三章学习笔记

    Unix/Linux进程管理

    多任务处理原则

    多任务处理

    • 通过不同任务之间多路复用CPU的执行时间来实现,即将CPU执行操作从一个任务切换到另一个任务;
    • 逻辑并行性称为“并发”;
    • 多任务处理是所有操作系统的基础,也是并行编程的基础。

    多任务处理系统(MT系统)

    1.虚拟CPU;
    2.init():当MT系统启动时,main()函数调用init()函数以初始化系统;
    3.P0调用kfork()来创建优先级为1的子进程P1,并将其输入就绪队列中,然后P0调用tswitch(),将会切换任务以运行P1;
    4.tswitch():实现进程上下文切换

    SAVE函数:当正在执行的某个任务调用tswitch()时,会把返回地址保存在堆栈上,并在汇编代码中进入tswitch();
    scheduler():在执行了tswitch()中的SAVE函数后,任务调用scheduler()来选择下一个正在运行的任务;
    RESUME函数:当执行从scheduler()返回时,“运行”可能已经转而指向另一个任务的PROC;

    5.kfork():kfork()函数创建一个子任务并将其输入readyQueue中。

    进程

    概念

    • 进程是对映像的执行。

    多任务处理系统内的进程

    • 多任务处理系统支持动态进程创建、进程终止,以及通过休眠与唤醒实现进程同步、进程关系,以及以二叉树的形式实现进程家族树,从而允许父进程等待子进程终止。

    进程的执行模式

    • 内核模式Kmode
    • 用户模式Umode

    在Kmode模式下,通过将CPU的状态寄存器从K模式更改为U模式,可轻松切换至Umode;但Umode进程只能通过中断、陷阱、系统调用三种方式进入Kmode。

    进程管理的系统调用

    • fork
    • wait
    • exec
    • exit

    I/O重定向

    I/O重定向原则

    • 标准输入:如果用一个新打开的文件来替换文件描述符0,那么输入将来自该文件而不是原始输入设备。
    • 标准输出:更改文件描述符1,指向打开的文件名,然后stdout的输出将会转到该文件而不是屏幕;同样也可以将stderr重定向到一个文件。

    管道编程

  • 相关阅读:
    【NOIP】提高组2015 运输计划
    【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛
    【51nod】1766 树上的最远点对
    【BZOJ】2054: 疯狂的馒头
    【SRM20】数学场
    【Luogu】P3930 SAC E#1
    【Luogu】P3927 SAC E#1
    【Luogu】 P3928 SAC E#1
    【Codeforces】868C. Qualification Rounds
    【CodeForces】866D. Buy Low Sell High
  • 原文地址:https://www.cnblogs.com/ckx1212-20191308/p/15456019.html
Copyright © 2011-2022 走看看