计算机系统基础

计算机系统基础

1. 操作系统

1.1 并行和并发

  • 并行是在同一时刻执行多个任务
  • 并发是在相同的时间段内执行多个任务,任务可能交替执行,通过调度实现。

并⾏是指在同⼀时刻执⾏多个任务,这些任务可以同时进⾏,每个任务都在不同的处理单元(如多个CPU核⼼)上执⾏。在并⾏系统中,多个处理单元可以同时处理独⽴的⼦任务,从⽽加速整体任务的完成。 并发是指在相同的时间段内执⾏多个任务,这些任务可能不是同时发⽣的,⽽是交替执⾏,通过时间⽚轮转或者事件驱动的⽅式。并发通常与任务之间的交替执⾏和任务调度有关。

1.2 僵尸进程和孤儿进程

  1. 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么子进程将成为孤儿进程。孤儿进行将被init(进程号为)所收养,并由init进程对它们完成状态收集工作。
  2. 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。

1.3 信号和信号量的区别

  1. 信号:一种处理异步事件的方式。信号是比较复杂的通信方式,用于通知接收进程由某种事件发生,除了用于进程外,还可以发送信号给进程本身。
  2. 信号量:进程间通信处理同步互斥的机制。是在多线程环境下使用的一种设施,它负责协调各个线程,以保证它们能够正确,合理的使用公共资源。

1.4 局部性原理

在⼀段时间内,程序倾向于多次访问相同的数据或接近的数据,⽽不是随机地访问内存中的各个位置。局部性原理通常分为两种类型:时间局部性和空间局部性。

  1. 时间局部性 如果⼀个数据被访问,那么在不久的将来它很可能会再次被访问。这意味着程序在短时间内倾向于反复使⽤相同的数据项,例如在循环中反复访问数组的元素。 通过利⽤时间局部性,程序可以将频繁使⽤的数据存储在缓存中,从⽽减少访问主内存的次数,提⾼程序的执⾏速度。
  2. 空间局部性 如果⼀个数据被访问,那么它附近的数据也很可能会被访问。这意味着程序在访问⼀个数据时,通常会在接近该数据的附近访问其他数据,例如遍历数组时,往往会访问相邻的元素。 ⽂件系统在磁盘上存储数据时,通常会将相关的数据块放在相邻的磁盘扇区上,以便在访问⼀个数据块时能够快速地访问相邻的数据块。

1.5 进程和线程

进程是系统进⾏资源分配和调度的基本单位
线程是操作系统能够进⾏运算调度的最⼩单位,线程是进程的⼦任务,是进程内的执⾏单元。 ⼀个进程⾄少有⼀个线程,⼀个进程可以运⾏多个线程,这些线程共享同⼀块内存。

  • 资源开销: 进程:由于每个进程都有独⽴的内存空间,创建和销毁进程的开销较⼤。进程间切换需要保存和恢复整个进程的状态,因此上下⽂切换的开销较⾼。 线程:线程共享相同的内存空间,创建和销毁线程的开销较⼩。线程间切换只需要保存和恢复少量的线程上下⽂,因此上下⽂切换的开销较⼩。

  • 通信与同步: 进程:由于进程间相互隔离,进程之间的通信需要使⽤⼀些特殊机制,如管道、消息队列、共享内存等。

    线程:由于线程共享相同的内存空间,它们之间可以直接访问共享数据,线程间通信更加⽅便。

  • 安全性: 进程:由于进程间相互隔离,⼀个进程的崩溃不会直接影响其他进程的稳定性。 线程:由于线程共享相同的内存空间,⼀个线程的错误可能会影响整个进程的稳定性。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机系统基础是计算机科学与技术领域中的一门重要课程,主要涵盖计算机系统的硬件、软件、操作系统、网络等方面的知识。在学习这门课程时,学生们会了解计算机系统的组成、设计原理以及工作原理。 首先,计算机系统由硬件和软件两个部分组成。硬件包括中央处理器(CPU)、内存、存储设备、输入输出设备等,它们共同协作完成计算机的运算和数据存储功能。软件则包括操作系统、应用软件和编程语言等,它们使计算机硬件能够发挥作用并实现特定的功能。 其次,计算机系统基础还涉及到计算机的操作系统操作系统计算机系统的核心软件,它负责管理和控制计算机硬件资源,为用户和应用程序提供统一的接口。学习计算机系统基础,我们需要了解操作系统的基本功能、进程管理、内存管理、文件系统等重要知识,以便能够合理地利用和管理计算机系统资源。 在计算机系统基础课程中,还会学习计算机网络的基础知识。计算机网络是计算机系统之间相互连接和通信的基础设施,它使得分布式计算成为可能,并且提供了全球范围内的信息传输能力。学习计算机网络的基础知识,我们需要了解网络协议、网络拓扑、数据传输、网络安全等方面的内容。 总之,计算机系统基础课程对于我们掌握计算机科学与技术领域的基础知识至关重要。通过学习计算机系统基础,我们能够深入了解计算机系统的原理和工作方式,为进一步学习和研究计算机科学相关领域奠定坚实的基础。 ### 回答2: 计算机系统基础是指对计算机硬件、操作系统和计算机网络等方面的理论和知识进行研究和学习。在CSDN上,我们可以找到很多优质的相关资料和学习资源。 首先,计算机系统基础主要包含了计算机的硬件结构和原理,包括中央处理器(CPU)、内存、输入输出设备等硬件组成部分以及它们之间的工作原理和协调方式。我们可以在CSDN上找到很多关于计算机硬件的文章和教程,可以帮助我们更好地了解计算机的工作原理和性能优化等方面的知识。 其次,操作系统计算机系统基础中的重要组成部分,它负责管理计算机的资源和提供各种服务。在CSDN上,可以找到很多关于操作系统的文章和教程,包括常见的操作系统原理、文件系统、进程管理、内存管理等内容,这些资料能够帮助我们深入理解操作系统的工作原理和使用方法。 此外,计算机网络也是计算机系统基础中的重要内容之一。计算机网络连接了各种计算机和设备,实现了信息的传输和共享。在CSDN上可以找到很多关于计算机网络的资料,包括网络协议、网络拓扑、网络安全等方面的内容,这些资料对于理解和应用计算机网络是非常有帮助的。 总结起来,计算机系统基础是计算机科学的重要基础知识,通过在CSDN上学习相关内容,我们能够更好地了解计算机原理和系统工作方式,提升自己在计算机领域的知识和技能。 ### 回答3: 计算机系统基础是指对计算机系统的各个方面进行全面了解和学习的一门课程。它涉及到计算机硬件、操作系统、网络和计算机体系结构等方面的知识。 在计算机硬件方面,我们需要了解计算机的组成和工作原理,包括中央处理器(CPU)、内存、硬盘、显卡等硬件设备的作用和相互之间的关系。此外,我们还需要了解各种输入输出设备以及计算机系统的扩展和连接方式。 在操作系统方面,我们需要学习操作系统的功能和特点,如进程管理、文件系统、内存管理、设备管理等。我们还需要了解操作系统的启动过程和运行机制,了解不同操作系统的特点和使用方法。 在网络方面,我们需要了解计算机网络的基本概念、网络拓扑结构以及常见的网络协议。我们还需要学习如何利用网络进行数据传输和通信,并了解网络安全和数据保护的基本知识。 在计算机体系结构方面,我们需要了解计算机系统的层次结构、指令集和微指令的概念,以及计算机的运行模式和工作原理等。我们还需要了解不同的计算机体系结构和它们的特点,如单处理器、多处理器和分布式系统等。 通过学习计算机系统基础,我们能够深入了解计算机系统的各个方面,为我们进一步深入学习计算机科学和应用开发打下坚实的基础。它对我们理解计算机系统的工作原理、解决计算机系统中的故障和优化系统性能等都具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值