IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 面试基础总结-操作系统、计算机网络、数据库 -> 正文阅读

[大数据]面试基础总结-操作系统、计算机网络、数据库

操作系统

1.进程、线程和协程的区别和联系

进程线程协程
定义资源分配和拥有的基本单位程序执行的基本单位用户态的轻量级线程,线程内部调度的基本单位
切换情况进程CPU环境(栈、寄存器、页表和文件句柄等)的保存与新调度的进程CPU环境的设置保存和设置程序计数器、少量寄存器和栈的内容先将寄存器上下文和栈保存,等切换回来的时候再进行恢复
切换者操作系统操作系统用户
切换过程用户态-》内核态-》用户态用户态-内核态-用户态用户态
调用栈内核栈内核栈用户栈
拥有资源CPU资源、内存资源、文件资源和句柄等程序计数器、寄存器、栈和状态字拥有自己的寄存器上下文和栈
并发性不同进程间切换实现并发一个进程内部的多个线程并发执行同一时间只能执行一个协程、其他协程处于休眠状态
系统开销切换虚拟地址空间、切换内核栈和硬件上下文、CPU高速缓存失效、页表切换、开销很大切换时只需保存和设置少量寄存器内容,开销很少直接操作栈则基本没有内核切换的开销,可不加锁的访问全局变量,上下文切换非常快
通信管道、消息队列、共享内存、线程间可直接读写进程数据段(全局变量)来进行通信共享内存、消息队列

线程间共享的有堆、全局变量、静态变量、指针、引用、文件等,独自占有栈。所以线程共享同一进程的内存空间。

1.一个进程可创建多少线程?

理论上一个进程可用的虚拟地址空间是2G,默认情况下一个线程大小为1MB,所以理论上一个进程最多可创建2048个线程。

一个进程可创建的线程数由可用虚拟地址空间和线程的栈的大小共同决定

进程结构由以下部分组成:代码段、堆栈段、数据段。代码段是静态的二进制代码,多个程序共享。父进程创建完子进程后,父、子进程除了pid基本一致,共享全部数据。子进程通过写时拷贝和父进程共享数据。

进程地址空间:32位进程的地址空间都是4G,但用户态下只能访问低3G地址空间,只有加入内核态后,才可访问3G~4G的地址空间。

2.进程调度算法

  • 先来先服务(FCFS)
  • 短作业优先(SJF)
  • 最短剩余时间优先(Shortest Remaining Time Next,SRTN)
  • 时间片轮转
  • 优先级调度
  • 多级反馈队列

3.Linux下进程间通信方式

  1. 管道:一种特殊的文件,仅存在内存中。无名管道,半双工,只在具有亲缘关系的进程间用;有名管道,先进先出的通信方式
  2. 共享内存:最快的IPC方式,与信号量配合使用,进行进程同步。
  3. 消息队列:消息的链表,存放在内核中。独立于读写进程存在,读进程可根据消息类型有选择地接收消息。
  4. 套接字
  5. 信号和信号量

4.Linux下的同步机制

POSIX信号量:进程、线程都可用

POSIX互斥锁+条件变量:只可用于线程同步

5.进程间的状态切换

就绪状态(ready)等待调度

运行状态(running)

阻塞状态(waiting)等待资源

就绪和运行可以相互转换,其他都是单向转换,阻塞状态是缺少需要的资源而由运行状态转换过来。

6.操作系统对内存管理时需要做什么?

  • 负责内存空间的分配与回收
  • 提供某种技术从逻辑上对内存空间进行扩充
  • 提供地址转换功能,负责程序的逻辑地址与物理地址的转换
  • 提供内存保护功能,保证各进程在各自存储空间内运行,互不干扰

7.线程通信方法

信号

锁机制:互斥锁、读写锁、自旋锁

条件变量

信号量

8.虚拟内存的目的?

让物理内存扩充成更大的逻辑内存,让程序获得更多的可用内存。为了更好地管理内存,操作系统将内存抽象成地址空间每个程序拥有自己的地址空间,这个地址空间被分割成很多块,每一块称为一页。这些页被映射到物理内存,当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。

9.典型的锁

读写锁:多个读者可同时读;写必须互斥(只允许一个写,写读不可同时进行);写优于读

互斥锁

条件变量

自旋锁

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:47:24  更:2022-02-07 13:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:54:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码