软件编程(Programming)

计算机基础

2020-08-05  本文已影响0人  ADO_AI

近日复习计算机基础,看到老汤说_计算机基础,深入浅出,很有借鉴意义。做如下笔记,以捋清思路,以便后续回忆。


计算机基础_内容导图.png
一、计算机的基本组成
二、计算机运行的基本原理
三、操作系统

上述我们在讲到计算机运行的基本原理中提到,其本质是\color{red}{对数据的操作,具体形式是将所有的地址、操作、数据都进行二进制编码} \color{red}{CPU中的控制器通过地址获取操作和数据,运算器负责执行操作} 计算机可以通过三种语言进行操控:1.机器语言 2. 汇编语言 3. 高级语言(如C,C++,Java,Python). 即在\color{orange}{计算机发展的初期,我们是完全可以通过机器语言或者汇编语言直接操作计算机的} \color{orange}{即没有操作系统我们也可以运行计算机。}

操作系统的诞生是为了更方便、更易扩展地对计算机进行操作!它去对接底层的计算机硬件(CPU/内存),即它帮助我们做了机器语言或者汇编语言的事情;而将更易用的接口提供给更高级的软件,极大提升了我们计算机操作的丰富性和易用性,是现代计算机的标准结构。总结起来\color{blue}{操作系统有两部分功能:1.面向底层硬件的功能 2.面向用户的功能。}面向用户的功能其实就是我们日常生活中电脑使用的一些功能,略去。本部分我们主要介绍操作系统面向底层硬件的功能:\color{red}{管理CPU、内存、进程/线程/}。下图为整个计算机系统中,操作系统作为连接计算机硬件和其他软件的桥梁: image.png

一个独立核心的CPU,在一个时间段内,是只能干一个活的。要想干活干得多,则有几个办法:

  1. 增加核心数: 一个CPU可以有很多个核心(core),则干活的就多了,即为“多核”
  2. 多进程:有了多核(C),则每个核可以负责一个任务,多个任务并行运算,即为多进程
  3. 多线程(T):原则上一个核在一个时间段内只能干一个活,但是利用超线程技术将一个物理核(实实在在有的核) 模拟出两个逻辑核(虚拟出来,能够执行核心所负责的活),此时一个物理核变成了两个逻辑核,故能够干两个活,因而称为多线程。
  4. 以马万琴给我的服务器配置为例:2 X Intel Xeon Gold 6258R Processor/2.70 GHz/38.5 MB/28C/56T/205W/2UPI/2933MHz 意思是每块CPU参数为28C/56T,共2块CPU。
    这里的“时间段”,是计算机执行时间的最小单位,称为时间片;    
    进程是操作系统分配资源的最小单元, 线程是操作系统调度的最小单元。
    每个进程在执行过程中拥有独立的内存单元,而一个进程的多个线程在执行过程中共享内存。
    一个应用程序至少包括1个进程,而1个进程包括1个或多个线程,线程的尺度更小。

总结起来,特定计算机的资源(算力)是固定的(有多少核,多少线程);操作系统的作用就是根据当前计算机接到的任务,合理地进行计算资源的分配;当然在我们编程的过程中(Python),我们也可以通过coding的方式,显式地指定资源调用的方式。

python多进程/多线程的内容非常值得深入阅读,待续……https://zhuanlan.zhihu.com/p/46368084

image.png

参考文献
每个程序员必须懂的计算机基础知识老汤说https://www.bilibili.com/video/BV1uz411v75t?p=24
没有操作系统时,人们是如何操控计算机的?
https://www.jianshu.com/p/855be71576e8
ASCII
https://baike.baidu.com/item/ASCII
Python 多进程和多线程
https://zhuanlan.zhihu.com/p/46368084
关于多核,多进程,多线程
https://zhuanlan.zhihu.com/p/82123111
超线程
_百度百科
https://baike.baidu.com/item/%E8%B6%85%E7%BA%BF%E7%A8%8B/86034?fromtitle=%E8%B6%85%E7%BA%BF%E7%A8%8B%E6%8A%80%E6%9C%AF&fromid=276864

上一篇 下一篇

猜你喜欢

热点阅读