zoukankan      html  css  js  c++  java
  • 20165218 2018-2019-1 《信息安全系统》第八章学习总结

    20165218 2018-2019-1 《信息安全系统》第八章学习总结

    教材学习内容总结

    异常

    • 异常的四个类别:中断、陷阱(和系统调用)、故障、终止
    • C程序用syscall函数可以直接调用任何系统调用

    进程

    • 异常是允许操作系统内核提供进程概念的基本构造快

    • 系统中的每个程序都运行在某个进程的上下文中。上下文是由程序正确运行所需的状态组成。这个状态包括存放在内存中的程序的代码和数据,它的栈、通用目的寄存器的内容、程序计数器、环境变量以及打开文件描述符的集合。

    • 并发和并行

    • 每个私有地址空间都具有相同的通用结构,Linux进程的地址空间的组织结构

      • 代码段 .text:这是CPU执行的机器指令部分。通常正文段是共享的,而且是只读的,以防止程序修改其自身的指令。总是从地址0x400000开始。
      • 数据段 .data。数据段包含了程序中需要明确赋初值的变量。
      • 非初始化数据段 bss。bss 起始于 IBM 704汇编语言中的 Block Storage Start 指令的首字母缩写,并且沿用至今。
    • 运行在内核模式中的进程可以执行指令集中的任何指令,并且可以访问系统中的任何位置;用户模式中的进程不允许执行特权指令

    graph LR
    A[用户模式]-->|异常|B[内核模式]
    

    进程控制

    获取进程ID
    #include <sys/types.h>
    #include <unistd.h>
    
    pid_t getpid(void); //返回进程的PID
    pid_t getppid(void); //返回父进程PID
    
    终止进程
    • 进程总处于运行、停止(挂起)、终止三种状态之一。
    #include <stdio.h>
    
    void exit(int status);
        //status=0 进程正常终止;status=1或-1,进程异常退出
    
    fork()函数创建子进程
    #include <sys/types.h>
    #include <unistd.h>
    
    pid_t fork(void);
    

    fork()函数调用一次,返回两次。在父进程中,fork返回子进程PID,在子进程中,fork返回0。若调用了n次fork,则返回2^n次。

    回收子进程
    #include <sys/types.h>
    #include <wait.h>
    
    pid_t waitpid(pid_t pid, int *statusp, int options);
    
    进程休眠
    #include <unistd.h>
    
    unsigned int sleep(unsigned int secs);//secs为请求休眠的时间
    

    如果请求的时间已经到了,返回0,否则返回剩下的秒数。

    加载并运行程序
    #include <unistd.h>
    
    int execve(const char *filename, const char *argv[], const char *envp);
    

    代码调试中的问题和解决过程

    代码托管

    参考资料

  • 相关阅读:
    将图片插入到excel中
    C#如何实现下载文件保存到本地上面去
    jQuery实现按enter键登录
    线程(转载)
    SQL Server:触发器详解
    C# 创建Windows服务
    小记
    mysql的部署和使用
    Maven的理解和使用
    tomcat的部署与实践
  • 原文地址:https://www.cnblogs.com/zicerain/p/9995309.html
Copyright © 2011-2022 走看看