初识计算机操作系统与进程

操作系统

    • 操作系统
      • 1.硬件组成
      • 2. 软件OS
        • 2.1 什么是操作系统?
        • 2.1 怎么理解操作系统?
        • 2.3 为什么要设计OS
      • 3.进程
        • 3.1 什么是进程
        • 3.2 进程的本质
        • 3.3 时间片
        • 3.4 并发与并行
        • 3.5 内核态与用户态

操作系统

1.硬件组成

核心:冯诺依曼体系结构初识计算机操作系统与进程_第1张图片
组成:

  • 输入设备: 键盘、鼠标、扫描仪等
  • 中央处理器(CPU):运算器和控制器
  • 输出设备:显示器、打印机等

特点:

  • CPU 和输入设备或输出设备之不能直接交互,必要依靠中间的储存部分(内存)
    内存中数据不能持久化,电脑重启后就没了,磁盘中的数据可以持久化

2. 软件OS

2.1 什么是操作系统?

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

2.1 怎么理解操作系统?

类比银行系统和操作系统的:

区别 银行系统 操作系统
业务 存取款、贷款、转账 基本API的调用
提供服务的方式 以窗口的形式对外提供各种服务 以接口的形式对用户提供各种服务
管理者的角色 通过硬件设备负责人进行硬件管理 , 如:电脑是否正常工作,工作环境是否干净等也要在系统内部进行常规的业务管理,比如:传款接待等 通过硬件设备驱动进行硬件管理,比如:硬盘当前是否正常工作,网卡是否收到数据等。在系统内部进行常规的软件业务管理,比如:文件管理、去顶管理、进程管理
执行者的角色 硬件设备的负责人 各种负责硬件正常进行基本工作的软件程序、驱动程序
被管理者的角色 银行安保设备、调度设备、货币设备、员工公寓等其他硬件设备 各种计算机硬件、整体以冯诺依曼框架组织、如CPU、内存、网卡、硬盘等

总的来说:

  1. 管理者的任务分为两种:硬件管理和软件管理
  2. 按照目标对象分两种:对内管理和对外的业务管理

2.3 为什么要设计OS

设计操作系统的目的:

  • 与硬件交互,管理所有的软硬件资源(对内且对下)
  • 为用户程序(应用程序)提供一个良好的执行环境(对外且对上)

初识计算机操作系统与进程_第2张图片

3.进程

3.1 什么是进程

一个执行任务就说一个进程。
在这里插入图片描述

可执行文件(.exe) 不等于进程
但当运行一个exe时候就会产生一个进程
初识计算机操作系统与进程_第3张图片
编写一个java进程:

public class HelloJava {
     
    public static void main(String[] args) throws InterruptedException {
     
        Thread.sleep(2*60*1000);   // 等待 2分钟
    }
}

在cmd中编译并运行:

javac Test.java
java Test

打开任务管理器中查该进程:
在这里插入图片描述

3.2 进程的本质

进程在操作系统中是由一个链表组成的多个 PCB(进程管理模块)结构体
每次运行exe文件时相当于在内核中PCB链表中把这个exe文件
转换成了一个 PCB 结构体初识计算机操作系统与进程_第4张图片
PCB(进程管理模块)结构体:

  1. PID (主键ID、身份识别)
    PID 是进程的身份ID,是唯一的,但是重启后 PID 就变了
    [外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imbl.csdnimg.cn/202CGjT10502010848190.285)(https://img-哇ng)]

  2. 状态信息(就绪、运行、堵塞、终止)
    初识计算机操作系统与进程_第5张图片

  3. 优先级 (用于资源分配)

  4. 记账信息(记录进程运行次数,把防止CPU分配资源不均)

  5. 一组指针(进程需要使用的资源)

  6. 上下文信息(进程运行时是分时运行的,当分配到CPU 资源时执行,然后没有CPU资源之后, 暂时保存当前状态,等待下一次执行,这个过程叫做一个上下文)

  • 就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
  • 切换时需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能 够恢复切换时的状态,继续执行。

3.3 时间片

操作系统的任务调度是猜用时间片轮转的抢占式调度方式,当一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行,任务执行的一小段时间就叫做时间片。

这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发。

3.4 并发与并行

  • 并发:多个进程在一个CPU下采用时间片轮转的方式,在一段时间之内,让多个进程都得以推进, 称之为并发。
  • 并行:多个进程在多个CPU下分别,同时进行运行,这称之为并行。

并发相当于:一个银行只有一个窗口,工作人员轮流给每个人办业务,但是只给每个人 1 分钟,时间一到保存进度,然后接着下一个人上一次的保存的进度继续办理业务。

并行相当于:银行有很多窗口,同时给所有人办理业务。

3.5 内核态与用户态

操作系统对执行权限进行分级:用户态和内核态。

  • 操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态,或核心 态。
  • 用户程序的权限最低,称为用户态。

举个例子:
张三去银行办业务,在表上填写自己写姓名,电话,邮箱等等,做着自己的事情,这叫做用户态,而张三通过窗口的工作人员,把自己的需求给工作人员,自此,张三在等,银行工作人员在忙,对张三来讲,就叫做陷入内核。
内核态就是工作人员在帮你办理业务时的状态

你可能感兴趣的:(Java学习笔记,操作系统,java)