前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机领域的核心概念与思想

计算机领域的核心概念与思想

作者头像
一个会写诗的程序员
发布2021-12-20 18:32:20
5280
发布2021-12-20 18:32:20
举报

计算机领域的核心概念与思想

0.计算机系统原理Principles of Computer Systems

操作系统 Operating systems

进程、线程、虚拟内存

processes, threads, virtual memory

编译器 Compilers

计算机网络 Computer networking

在计算机之间建立功能连接的各种网络层

the various network layers that allow us to establish functional connections between computers

计算机安全 Computer security

1.抽象Abstraction

抽象是关于定义接口并关注函数背后的思想而不是实现细节。我们可以定义接口并使用它们,而无需知道一切在幕后如何工作,并且我们可以支持遵循相同接口的多个实现。

常用的抽象案例

文件系统:在以前的课程中,您可能使用过 CFILE *或 C++fstream而不知道它们是如何工作的

进程:您知道如何进行多处理,即使您并不真正了解在汇编指令级别发生了什么以支持该处理

信号:您了解如何发送和接收信号,但您可能不知道操作系统代表您做什么以使其发生

线程:你知道如何创建线程,但你并不真正知道它们是如何实现的

网络套接字:您知道如何使用网络连接作为连接两台计算机的管道,但您不知道操作系统内部发生了什么以提供这种错觉

2.模块化和分层Modularity and Layering

模块化:一旦代码开始变得复杂,让我们开始将其分解为可管理的部分。

分层是一种特殊的模块化形式,我们将各个部分堆叠在一起。

Modularity: as soon as code starts getting complicated, let’s start breaking it down into manageable pieces.

Layering is a special form of modularity in which we stack pieces on top of each other.

3.命名和名称解析 Naming and name resolution

我们需要名称来引用系统资源。(否则你会如何处理进程?否则你会如何处理打开的文件?)我们还需要名称解析系统将人性化的名称转换为机器友好的名称。

We need names to refer to system resources.(How else would you address a process? How else would you address an open file?) We also need name resolution systems to convert from human-friendly names to machine-friendly ones.

4.缓存Caching

缓存是一个组件——有时在硬件中实现,有时在软件中实现——用于存储数据,以便可以更快地处理未来的请求。

存储层次结构中的缓存storage hierarchy

基于网络的存储真的很慢 Network-based storage is really slow

如果需要,我们可以使用磁盘空间来缓存它We can use disk space to cache that if we want

我们可以使用 RAM 从磁盘缓存数据We can use RAM to cache data from disk

L3、L2 和 L1 处理器缓存来自 RAM 的缓存数据The L3, L2, and L1 processor caches cache data from RAM

最后,信息存储在寄存器中。Finally, information is stored in registers.

还有 TLB 缓存、DNS 缓存和 Web 缓存TLB caches, DNS caches, and web caches

5.虚拟化Virtualization

虚拟化就是让许多硬件资源看起来像一个,或者让一个硬件资源看起来像很多。

使许多硬件资源看起来像一个:

RAID 允许您将许多磁盘连接到一台机器上,显示为一个磁盘

AFS 对网络文件系统做了类似的事情

Web 负载平衡器将负载分配到许多服务器

使一种硬件资源看起来像许多:

虚拟内存使每个进程都认为它拥有所有内存

线程/进程提供了一切都在并行运行的错觉,即使只有一个 CPU

6.并发 Concurrency

同时运行的多个线程或进程。

MapReduce : 跨机器集群的并发性

信号和中断处理程序也是一种并发形式。

signal and interrupt handlers are a form of concurrency

一些编程语言(例如 Erlang)完全围绕并发性进行设计,以至于不可能出现竞争条件。

7.客户端-服务器请求-响应Client-server request-response

系统调用、多处理和网络请求。system calls, to multiprocessing, and to network requests.

请求/响应是将功能组织成具有明确职责的模块的好方法。

Request/response is a good way to organize functionality into modules that have a clear set of responsibilities.

计算机领域的核心概念与思想.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算机领域的核心概念与思想
    • 0.计算机系统原理Principles of Computer Systems
      • 1.抽象Abstraction
        • 2.模块化和分层Modularity and Layering
          • 3.命名和名称解析 Naming and name resolution
            • 4.缓存Caching
              • 5.虚拟化Virtualization
                • 6.并发 Concurrency
                  • 7.客户端-服务器请求-响应Client-server request-response
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档