进程--Process

进程的定义

  1. 是一个在运行的程序
  2. 是一个容纳运行一个程序所需要的所有信息的容器

进程表--Process table

  • 存储进程的信息

  • PCB--Process control block

    • UID

    • PID

    • GID

进程树--Process Tree

父进程和子进程

IPC:协作(cooperate)和同步(synchronize)进程的通信称为进程间通信(IPC--Inter Process Connect)。

地址空间--Address Space

  1. 一个进程不能看到其他进程的地址空间
  2. 同样的地址指针在不同的进程里会指向不同的内存
  3. 可以动态地改变映射

进程和程序的不同之处

  1. 进程是动态的,程序是静态的。一个进程有一个确定的生命周期,一个程序是一个指令的集合体
  2. 一个程序可以同时对应多个进程,通过多个进程来实现一个进程,但是一个进程只能对应一个程序
  3. 除了程序代码外,进程还包含运行程序所需的资源。

文件

  1. 文件系统--file system
  2. 目录--directory
  3. 路径--path name
  4. 根目录--root directory:是目录 分级的最高端
  5. 工作目录--working directory(PWD):每一个进程有一个当前的工作目录

文件描述符--File descriptor

  • 一个小的整型数字
  • 在可移动介质中装入文件系统。

保护

  • 操作系统的任务:保证文件对于有权限的使用者是可访问的

Shell

  • Shell是一个让使用者能够去接入操作系统服务的一个接口

系统调用

是运行中的程序和操作系统间的接口

比较重要的系统调用

windows系统调用的特点

  1. 程序往往是事件驱动的 event-driven
  2. Unix和windows系统调用几乎是一一对应的,但是名字不同 one-to-one relationship
  3. Windows使用Win32 API去取得OS的服务
  4. Win32 API调用的数量十分巨大,但是不是所有都在内核模式下运行

操作系统结构

  1. 单体结构--Monolithic System

    • 所有的操作系统的操作被放入一个单独的文件中

    • 操作系统是过程的集合,每一个都可调用其他的

  2. 层次式结构--Layered System

    • 操作系统被组织为进程层的层次结构
    • The operating system is organized as a hierarchy of layers of processes
  3. 微内核--Microkernels

    • 将操作系统分成多个模块,只有一个以内核模式运行,其他的以使用者模式运行
    • 尽可能少地投入到内核模式中,可以提高系统的稳定性
  4. 客户端-服务器模式--Client-Server Model

    • 包含两类进程:服务器和客户端。
    • 服务器和客户端之间的通信是通过消息传递完成的。
    • 它是一种可用于单个机器或机器网络的抽象
  5. 虚拟机--Virtual Machine

    • 操作系统是提供多道程序设计的分时系统;VM监视器是裸硬件的精确副本,

    问题

    1. What are the major tasks of an OS?

      1. 通过资源管理,提高系统的使用效率;
      2. 改善人机界面,向用户提供友好的工作环境。
    2. What is multiprogramming?

      多道程序设计是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。

      when the system is booted, many processes are running simultaneously, e.g., QQ, WeChat, etc.

    3. A computer has a pipeline with 4 stages. Each stage takes the same time to do its work, namely 1 nsec. How many instructions per second can this machine execute?

    100000000 - 4 + 1

    1. What is the purpose of a “system call” in an OS?

      使得用户可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信以及存储管理 资源等方面的功能

    2. What are monolithic system and microkernel?

    3. What is a process?

      • A program in execution

      • A container that include the information to run a program