zoukankan      html  css  js  c++  java
  • 第三章读书笔记

    第三章读书笔记

    进程管理——进程概述

    进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

    在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

    进程创建:利用封装函数fork(),利用wait()回收,exit推出。

    进程描述符:task_struct结构   (pcb)

    定义:为了管理进程,操作系统必须对每个进程所做的事情进行清楚地描述,为此,操作系统使用数据结构来代表处理不同的实体,这个数据结构就是通常所说的进程描述符或进程控制块,在linux系统中,它包含了这个进程的所有信息,在任何时候操作系统都能跟踪这个结构的信息

    cpu任务对应结构为:分配进程pcb--存放空间--记录当前数据与状态--记录上下文---索引所有子父关系--等待返回或结束

    进程创建到回收的基本步骤:

    1 在Linux系统中,通常调用fork()系统调用,该系统调用通过复制一个现有进程来创建一个全新的进程。调用fork()的进程被称为父进程,新产生的进程被称为子进程。在该调用结束时,在返回点这个相同位置上,父进程恢复执行,子进程开始执行。fork() 系统调用从内核返回两次:一次回到父进程,另一此回到新诞生的子进程。

    2 通常,创建新的进程都是为了立即执行新的、不同的程序,而接着调用exec*()这族函数就可以创建新的地址空间,并把新的程序载入。在现代Linux内核中,fork()实际上是由clone()系统调用实现的

    3 最终,程序通过exit()系统调用退出执行。这个函数会终结进程并将其占用的资源释放掉。父进程可以通过wait4()系统调用查询子进程是否终结,这其实使得进程拥有了等待特定进程执行完毕的能力。进程退出执行后被设置为僵死状态,直到它的父进程调用wait()或waitpid()为止。

    线程---更小的执行单位

    线程:是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。

    特点:

    1 轻型实体-----只占用必不可少的资源

    2 独立调度和分派的基本单位

    3 可并发执行

    4 共享进程资源

    与进程比较:

    地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

    通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

    调度和切换:线程上下文切换比进程上下文切换要快得多。
    在多线程OS中,进程不是一个可执行的实体。
     
     
    总结:
    操作系统的职能之一,主要是对处理机进行管理。为了提高CPU的利用率。通过进程管理来协调多道程序之间的关系,使CPU得到充分的利用。并设置进程相应的信息方便cpu来回运用,而具体的进程结构需要一定的资源处理,也就是空间换时间了
  • 相关阅读:
    Tomcat服务器安装、配置、测试
    Java开发环境配置
    文件-第12章-《数据结构题集》习题解析-严蔚敏吴伟民版
    12-1-顺序文件归并-文件-第12章-《数据结构》课本源码-严蔚敏吴伟民版
    外部排序-第11章-《数据结构题集》习题解析-严蔚敏吴伟民版
    11-2-置换-选择排序-外部排序-第11章-《数据结构》课本源码-严蔚敏吴伟民版
    11-1-败者树-外部排序-第11章-《数据结构》课本源码-严蔚敏吴伟民版
    内部排序-第10章-《数据结构题集》习题解析-严蔚敏吴伟民版
    10-12-顺序表地址排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版
    10-11-基数排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版
  • 原文地址:https://www.cnblogs.com/chuishi/p/5347468.html
Copyright © 2011-2022 走看看