zoukankan      html  css  js  c++  java
  • 2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结

    - 2018-2019-1 20165206 《信息安全系统设计基础》第七周学习总结

    - 教材学习内容总结

    - 异常

    • 异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。异常是控制流中的突变,用来响应处理器状态中的某些变化。

    • 异常处理程序运行在内核模式下,它们对所以的系统资源都有完全的访问权限。

    • 异常的种类:异常可分为四类,中断、陷阱、故障和终止。
      中断是异步产生的,是来自处理器外部的I/O设备的信号的结果。
      陷阱是有意的异常,是执行一条指令的结果。
      故障由错误情况引起,它可能能够被故障处理程序修正。
      终止是不可恢复的致命错误造成的结果,通常是一些硬件错误。

    • 系统调用

    - 进程

    • 进程的经典定义是一个执行中的程序的实例。

    • 进程提供给应用程序的关键抽象:一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器;一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用内存系统。

    • 并发流:一个逻辑流的执行在时间上与另一个流重叠。这两个流称为并发地执行。

    • 操作系统内核使用一种称为上下文切换的较高层形式的异常控制流来实现多任务。

    - 进程控制

    • 每个进程都有一个唯一的正数进程ID,PID。getpid函数返回调用进程的PID。getppid函数返回它的父进程的PID。

    • 可以认为进程总是处于下面三种状态之一:
      1、运行:进程要么在CPU上执行,要么在等待被执行且最终会被内核调度。

    2、停止:进程的执行被挂起,且不会被调度。

    3、终止:进程永远地停止了。

    • 进程终止的三种原因:收到一个信号,该信号的默认行为是终止进程、从主程序返回、调用exit函数。

    • fork函数:父进程通过调用fork函数创建一个新的运行的子程序。
      它只被调用一次,却会返回两次:一次是在父进程中,一次是在新创建的子进程中。
      在父进程中,fork返回子进程的PID。

    代码运行效果:

    • exec函数:在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:
      int execl(const char *path, const char *arg, ...);
      int execlp(const char *file, const char *arg, ...);
      int execle(const char *path, const char *arg, ..., char *const envp[]);
      int execv(const char *path, char *const argv[]);
      int execvp(const char *file, char *const argv[]);
      int execve(const char *path, char *const argv[], char *const envp[]);
      其中只有execve是真正意义上的系统调用,其它都是在此基础上经过包装的库函数。

    exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。

    代码运行效果:

    - 发送信号:

    • 用/bin/kill程序发送信号

    • 从键盘发送信号

    • 用kill函数发送信号

    • 用alarm函数发送信号

    - 上周错题总结

    • 第一题:
      write(2)的第一个参数fd可能来自()
      A .
      open(2)
      B .
      create(2)
      C .
      creat(2)
      D .
      close(2)

    • 答案:A C

  • 相关阅读:
    55最佳实践系列:Logging最佳实践
    关于 Multiget hole:spymemcached对此的实现方法
    Java两则故障分析和常见连接超时时间
    spymemcached :某个mc节点操作连续超时超过998次就 AutoReconnect 的特性
    最佳实践系列:前端代码标准和最佳实践
    随手小记:PHPFPM模式下PHP最大执行时间、Pragma和postcheck
    Storm 是如何跟踪一条消息以及它衍生出来的消息都被成功处理的
    Tumblr的消息通知系统是如何构建的
    职业化之可以固化的六个工作模式
    三个实例演示 Java Thread Dump 日志分析
  • 原文地址:https://www.cnblogs.com/brs666/p/9940231.html
Copyright © 2011-2022 走看看