1. 操作系统

​ 管理、控制、协调计算机硬件与软件资源的计算机程序。

1.1 作用

  1. 将一些对硬件操作的复杂、丑陋的接口,变成简单、清晰的接口。
  2. 将多个进程对硬件资源(cpu)的竞态请求变得有序化、合理化。

1.2 操作系统的发展

​ linux或windows的源代码有五百万行数量级。

计算机发展史:

  1. 第一代:电子管计算机(1946——1958年),真空电子管,机器语言编写。

    ​ 优点:个人能够独享资源;

​ 缺点: 体积大,功耗高,速度慢,操作繁琐,串行执行。

  1. 第二代:晶体管计算机(1958年—1964年)存储于磁盘,批处理系统

    ​ 优点:批处理,节省机时;

    ​ 缺点:人参与控制,串行执行,统一规划到一批作业中。

  2. 第三代:集成电路计算机(1964年—1970年):多道程序系统

    ​ 背景:1. 集成电路:把所用的硬件变小,线路板。2.不同生产线不兼容,需合并兼容。

    多道程序系统

    1. 空间上的复用:将内存分区域,一个内存可以同时加载多个进程。
  3. 时间上的复用:实现将cpu在多个进程之间来回切换,并且保留状态。

​ 几乎所有的程序又有IO阻塞;同时加载到内存3个进程,每个进程都有阻塞情况,只要cpu运行一个进程遇到IO阻塞时,会立马切换,长时间占用cpu也会切换。 这样能够提升效率,最大限度的使用cpu。

​ 如果是一个IO密集型进程,来回切换提升效率;

​ 如果是一个计算密集型,来回切换降低效率。

​ 再加上计算机采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生。(分时系统

特点:系统化、标准化。

  1. 第四代:大规模集成电路(1970年—至今)

    ​ 集成度更高,体积小,使用方便。

2. 进程的理论

2.1 相关名词

程序:一堆静态的代码文件。

进程:程序的运行过程、任务。 是由操作系统操控调用交与cpu运行。

一个程序可以开启多个进程。

串行:所有的任务一个接一个去完成。

并行:多个cpu执行多个任务,真正的同时完成。

并发:一个cpu完成多个任务,看起来像是同时完成。

阻塞:cpu遇到IO就是阻塞。

非阻塞:没有IO就是非阻塞。

2.2 进程的创建

​ 新的进程创建都是由一个已存在的进程执行调用创建的。

​ 一个主进程可以开启多个子进程;

​ 一个子进程必须依赖主进程才可以开启。

Unix: 由fork创建子进程。linux,mac基于Unix: 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.

Windows:操作系统调用CreateProcess 处理进程的创建。创建一个子进程,会copy主进程所有的资源,但是会改变一些资源。

2.3 进程的状态:

​ 运行、阻塞、就绪三种状态。

操作系统与进程.md的更多相关文章

  1. 操作系统:进程管理和IO控制

    一.进程管理 进程管理包括进程控制,进程调度,进程同步与通信,死锁控制四个内容. (一)进程控制 进程是操作系统中运行的基本单位,包括程序段,数据段和进程控制段.操作系统通过进程控制块(PCB)管理进 ...

  2. python 操作系统和进程

    一. 操作系统介绍 多道程序系统 多道程序设计技术       所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种 ...

  3. 操作系统发展史 & 进程

    今日内容 UDP协议 操作系统发展史 进程 单核情况下的进程调度 进程三状态图 同步异步 阻塞非阻塞 内容详细 一.UDP协议 1.什么是UDP协议 UDP是传输层的协议,功能即为在IP的数据报服务之 ...

  4. 【windows 操作系统】进程控制块(PCB)

    转载地址:https://blog.csdn.net/qq_38499859/article/details/80057427一.目录文章目录    操作系统3 ----进程控制块(PCB)详解    ...

  5. 【windows 操作系统】进程

    前言 Windows的内部实现也近似于"一切皆文件"的思想,当然,这一切都只在内核里才有,下载一个WinObj这软件就可以看到,Windows上各种设备.分区.虚拟对象都是挂载到根 ...

  6. 深入理解Linux操作系统守护进程的意义

    Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的.守护进程 ...

  7. 操作系统之进程篇(4)--经典进程间通信(IPC)问题

    1. 哲学家进餐问题: 问题描述: 五个哲学家在一个圆桌上进餐,每人的面前放了一盘意大利面,两个盘子之间有一个叉子,但是由于盘子里面的面条十分光滑,需要两个叉子才能进行就餐行为.餐桌的布局如下图所示: ...

  8. Python开发——13.操作系统、进程和线程

    一.操作系统 1.定义 操作系统是用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间.操作系统运行在内核态,拥有对所有硬件的完全访问权,可以执行机器能够运行的任何指令.软件的 ...

  9. LINUX操作系统知识:进程与线程详解

    当一个程序开始执行后,在开始执行到执行完毕退出这段时间内,它在内存中的部分就叫称作一个进程. Linux 是一个多任务的操作系统,也就是说,在同一时间内,可以有多个进程同时执行.我们大家常用的单CPU ...

随机推荐

  1. NLP中的预训练语言模型(五)—— ELECTRA

    这是一篇还在双盲审的论文,不过看了之后感觉作者真的是很有创新能力,ELECTRA可以看作是开辟了一条新的预训练的道路,模型不但提高了计算效率,加快模型的收敛速度,而且在参数很小也表现的非常好. 论文: ...

  2. 2019第一期《python测试开发》课程,10月13号开学

    2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...

  3. 初识V4L2(三)-------分析vivi.c 虚拟视频驱动

    1.分配video_device结构体 2.设置 3.注册  video_register_device 分析vivi.c: vivi_init( )//入口函数 vivi_create_instan ...

  4. SSH登录服务器慢

      最近频繁遇到ssh登录到服务器验证慢的这个问题,今天抽时间总结下原因以及解决办法. UseDNS   登录到服务器端查看sshd_config配置文件,当UseDNS项配置为yes时(默认情况下可 ...

  5. 每天一道Rust-LeetCode(2019-06-11)

    每天一道Rust-LeetCode(2019-06-02) Z 字形变换 坚持每天一道题,刷题学习Rust. 题目描述 全排列 II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输 ...

  6. pinpoint 安装指南

    tangcheng@ChenTang MINGW64 /c/Developer $ git clone https://github.com/naver/pinpoint.git Cloning in ...

  7. 使用async-profiler简单分析zeebe 工作流引擎的性能

    刚开始的时候直接使用的系统暴露的prometheus metrics,发现越高的版本反而性能越差,期间使用过了 perf 打算使用perf 生成火焰图的,但是因为符号缺失,只找到了占用较高的任务,详细 ...

  8. Linux引导过程与服务控制

    一:系统引导流程: 开机自检(BIOS)-->MBR引导-->GRUB菜单-->加载内核(kernel)-->init进程初始化  二:系统引导级别: 0 poweroff.t ...

  9. impala进阶

    一.impala存储 1.文件类型 2.压缩方式 二.impala分区 1.创建分区方式 partitioned by 创建表时,添加该字段指定分区列表: create table t_person( ...

  10. Apollo:微服务架构下的配置管理

    问题背景 在实际工作中,我们的开发环境,测试环境,生产环境对应的 Mysql 数据库,Redis 这些信息都不一样,每个环境都有对应的一套配置,在 Spring Boot 中我们通常会编写多个配置文件 ...