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

    2017-2018-1 20155338 《信息安全系统设计基础》第8周学习总结

    教材学习内容总结

    网络编程

    当一个客户端需要服务时,向服务器发送一个请求,发起一个事务。

    服务器收到请求后,解释它,并以适当的方式操作它的资源。

    服务器给客户端发送一个相应,并等待下一个请求。

    客户端收到响应并处理它。

    客户端和服务器都是进程.

    并发编程

    现代操作系统提供了三种基本的构造并发程序的方法:

    1、进程。每个逻辑控制流都是一个进程,由内核来调度和维护。因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显式的进程间通信(IPC)机制。

    2、I/O 多路复用。在这种形式的并发编程中,应用程序在一个进程的上下文中显式地调度它们自己的逻辑流。逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一个状态。因为程序是一个单独的进程,所以所有的流都共享同一个地址空间。

    3、线程。线程是运行在一个单一进程上下文中的逻辑流,由内核进行调度。是其他两种方式的混合体,像进程流一样由内核进行调度,而像I/O多路复用流一样共享同一个虚拟地址空间。

    关于进程的优劣

    优点:一个进程不可能不小心覆盖两一个进程的虚拟存储器。

    缺点:独立的地址空间使得进程共享状态信息变得更加困难。进程控制和IPC的开销很高。

    Web服务器

    客户端和服务器之间一个交互用的是基于文本的应用级协议——HTTP

    Web服务和常规文件检索服务区别

    Web内容可以用一个叫做HTML的语言来编写。

    5.2Web内容

    以两种不同方式向客户端提供内容

    1、服务静态内容

    2、服务动态内容

    HTTP事务

    响应

    
    HTTP请求(方法:GET POST OPTIONS HEAD PUT DELETE TRACE)
    
    HTTP响应
    
    

    服务动态内容

    
    客户端如何将程序参数传递给服务器
    
    服务器如何将参数传递给子进程
    
    服务器如何将其他信息传递给子进程
    
    子进程将它的输出发送到那儿
    
    

    基于线程的并发编程

    (1)创建线程

    pthread_create函数创建一个新的线程,并带着一个输入变量arg,在新线程的上下文中运行线程例程f。能用attr参数来改变新创建线程的默认属性。

    当 pthreadcreate 返回时,参数 tid包含新创建线程的ID。新线程可以通过调用 pthreadself 函数来获得它自己的线程 ID.

    (2)分离线程

    默认情况下,线程被创建成可结合的。为了避免存储器泄漏,每个可结合线程都应该要么被其他线程显式地收回,要么通过调用 pthread_detach 函数被分离。

    pthreaddetach 函数分离可结合线程 tid. 线程能够通过以 pthreadself()为参数的 pthread_detach 调用来分离它们自己。

    (3)初始化线程

    pthread_once 函数允许你初始化与线程例程相关的状态。

    (4)终止线程

    当顶层的线程例程返回时,线程会隐式地终止。 通过调用 pthreadexit函数,线程会显式地终止。如果主线程调用 pthreadexit,它会等待所有其他对等线程终止,然后再终止主线程和整个进程,返回值为 thread_return。

    代码托管

    结对及互评

    本周结对学习情况

    - [20155307](他完成了课上测试,所以没有写博客)
    - 结对学习内容
        - 并发编程
        - Web服务器
    

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 2000行 15篇 200小时
    第一周 150/150 1/1 17/17
    第二周 70/220 1/2 12/29
    第三周 100/320 1/3 10/39
    第四周 100/420 1/4 10/59
    第五周 80/500 2/6 22/81
    第六周 300/800 2/8 30/111
    第七周 200/1000 1/9 25/136
    第八周 500/1500 2/11 30/166
    • 计划学习时间:25小时

    • 实际学习时间:30小时

  • 相关阅读:
    冒泡排序
    快速排序
    玩转git版本控制软件
    django内容总结
    ajax图片上传功能
    随机验证码
    制作博客系统
    django自带的用户认证和form表单功能
    COOKIE 与 SESSION
    Ajax知识
  • 原文地址:https://www.cnblogs.com/Hdywan/p/7823555.html
Copyright © 2011-2022 走看看