0

操作系统面试指南

 1 year ago
source link: https://1905060202.github.io/2022/09/04/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%9D%A2%E8%AF%95%E6%8C%87%E5%8D%97/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

胡小宁的博客

操作系统面试指南

发表于2022-09-04|更新于2022-09-04|计算机基础
阅读量:2

校招在即,着手准备操作系统方面的面试。因为大二下学期学习了操作系统,所以对知识的理解还算深刻,只是一些细节忘记了,在这里重新梳理一下。

本文部分内容转自:JavaGuide面试指南

操作系统基础

什么是操作系统?

  • 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。
  • 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理

什么是系统调用?

介绍系统调用之前,我们先来了解一下用户态和系统态。

根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:

  • 用户态:用户态运行的进程可以直接读取用户程序的数据
  • 系统态:系统态运行的进程几乎可以访问计算机的任何资源,不受限制

说了用户态和系统态之后,那么什么是系统调用呢?

我们运行的程序基本都是在用户态上的,如果我们想调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了。

我们在运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、进程通信、内存管理,设备管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。

这些系统调用大致可分为如下几类:

  • 设备管理:完成设备的请求与释放,以及设备启动等功能。
  • 文件管理:完成文件的读、写、创建及删除等功能。
  • 进程控制:完成进程的创建、撤销、阻塞以及唤醒功能
  • 进程通信:完成进程之间的消息传递或信号传递等功能
  • 内存管理:完成内存分配、回收以及获取作业占用内存区大小及地址等功能

进程和线程

进程和线程的区别

线程是进程划分的更小的运行单位,一个进程在其执行期间可以产生多个线程。线程和进程最大的区别在于基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护。进程恰恰相反。

按石林老师的话来讲,进程是资源分配的最小单位,线程是CPU调度的最小单位。但是捏,CPU它也算资源吧,那这句话这么说就不太对了。石老师破天荒的提出了,进程是资源分配的最小单位,线程是时间分配的最小单位。

进程有哪几种状态?

进程的状态和线程的状态很相似,我们一般把他分为五态,考研还细分出了七态,我说真变态。

  • 创建状态:进程正在被创建,尚未到就绪状态。
  • 就绪状态:进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器资源(处理器分配时间片)即可运行
  • 阻塞状态:又称为等待状态,进程正在等待某一件事件而暂停运行,如等待某资源为可用或等待IO操作完成。即使处理器空闲,该进程也不能运行。
  • 结束状态:进程正在从系统中消失。可能是进程正常结束或者其他原因中断退出运行。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK