操作系统基础——针对实习面试

目录

操作系统基础

什么是操作系统?简述其主要功能

一、操作系统的定义

操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。它处于计算机硬件和用户之间,一方面它要管理和控制计算机硬件设备,如CPU、内存、磁盘、输入输出设备等;另一方面它为用户和其他软件提供了一个方便、高效、安全的使用环境。

例如,当你打开电脑,在没有运行任何应用程序之前,操作系统就已经在后台运行,它在默默地管理着电脑的各种硬件设备,等待你的操作指令。当你打开一个文本编辑器来写文档,操作系统会协调CPU为这个文本编辑器分配运算时间,将编辑器程序从磁盘调入内存,并管理它对键盘输入和显示器输出的操作等诸多事务。

二、操作系统的主要功能

  1. 处理器管理(CPU管理)
    • 进程管理 :进程是程序在计算机中的一次执行过程。操作系统负责创建、撤销进程,并对进程进行调度。它通过进程调度算法(如先来先服务、短作业优先、时间片轮转等)来决定哪个进程能够获得CPU资源,从而实现多个进程的并发执行。例如,在一个多任务操作系统中,当你同时打开音乐播放器、浏览器和文字处理软件,操作系统会根据进程调度算法合理地分配CPU时间给这些进程,让它们好像同时在运行一样。
    • 线程管理 :线程是进程内部的一个执行单元。操作系统对线程进行管理,包括线程的创建、终止、调度等。线程之间可以共享进程的资源,通过线程管理可以更好地利用CPU的多核特性,提高程序的执行效率。例如,在一个图像处理软件中,一个线程可以负责读取图像文件,另一个线程负责对图像进行滤波处理,第三个线程负责将处理后的图像显示出来,操作系统协调这些线程的执行,使得整个图像处理过程能够高效地完成。
  2. 存储器管理(内存管理)
    • 内存分配 :操作系统负责为进程分配内存空间。它有多种分配方式,如连续分配(包括单一连续分配、固定分区分配和动态分区分配)和非连续分配(如分页存储管理和分段存储管理)。例如,当你打开一个新的应用程序,操作系统会根据应用程序的大小和内存的使用情况,为这个应用程序分配合适的内存空间。
    • 内存保护 :防止不同进程之间的非法访问。每个进程都有自己独立的内存空间,操作系统通过设置内存访问权限等方式,确保一个进程不能随意访问其他进程的内存。比如,在一个多用户操作系统中,不同用户运行的进程的内存是相互隔离的,这样可以保证数据的安全性和程序的稳定性。
    • 内存回收 :当进程结束或者不再需要某些内存空间时,操作系统会回收这些内存。在动态分区分配内存时,回收内存还可能涉及到内存碎片的合并等操作,以提高内存的利用率。例如,当你关闭一个应用程序后,操作系统会回收这个应用程序之前占用的内存空间,将其重新分配给其他需要的进程。
    • 虚拟内存管理 :通过在磁盘上开辟交换空间,将暂时不使用的内存页面交换到磁盘上,当需要时再调入内存。这使得系统能够运行比实际物理内存大得多的程序。例如,在运行大型游戏或者复杂的图形设计软件时,虚拟内存可以让这些程序在物理内存不足的情况下依然能够正常运行。
  3. 设备管理
    • 设备驱动程序管理 :操作系统需要管理各种设备驱动程序。设备驱动程序是操作系统与硬件设备之间的接口,它使得操作系统能够识别和控制硬件设备。例如,当你插入一个新的U盘时,操作系统会加载相应的USB设备驱动程序,从而能够读取和写入U盘中的数据。
    • 设备分配和回收 :根据进程的需求,合理地分配和回收设备资源。例如,在多个进程需要使用打印机的情况下,操作系统会按照一定的策略(如先来先服务)分配打印机给进程,当进程使用完打印机后,操作系统会回收打印机资源,以便其他进程使用。
    • 设备缓冲管理 :为了提高设备的使用效率,操作系统通常会采用缓冲技术。例如,在磁盘读写操作中,操作系统会设置磁盘缓冲区。当从磁盘读取数据时,会先将数据读入缓冲区,以后如果有进程需要这些数据,就可以直接从缓冲区中获取,而不需要再次从磁盘读取,这样可以减少磁盘的I/O次数,提高数据访问速度。
  4. 文件管理
    • 文件存储管理 :负责在存储设备(如硬盘、固态硬盘等)上存储和组织文件。它通过文件分配表(FAT)或者索引节点(inode)等方式记录文件的存储位置。例如,在NTFS文件系统中,文件系统通过主文件表(MFT)来记录文件的各种信息,包括文件的存储位置、大小、创建时间等。
    • 文件目录管理 :提供目录结构来组织文件,方便用户和程序对文件进行访问。例如,在Linux操作系统中,采用树形目录结构,用户可以通过目录路径(如"/home/user/documents/file.txt")来定位文件。
    • 文件读写操作支持 :为用户和应用程序提供了打开、读取、写入、关闭文件等基本操作的接口。例如,当你在文本编辑器中打开一个文件进行编辑时,编辑器通过操作系统提供的文件读写接口来实现对文件内容的读取和写入。
    • 文件安全和保护 :设置文件的访问权限,如只读、读写、可执行等权限,以保护文件的安全性。例如,在Unix - like系统中,文件所有者可以通过设置文件的权限位来控制其他用户对文件的访问权限,从而保护文件的内容不被非法修改。
  5. 用户接口
    • 命令行界面(CLI) :用户通过在命令提示符下输入命令来操作计算机。例如,在Linux系统中,用户可以在终端中输入"ls"命令来查看当前目录下的文件列表,输入"cp source_file destination_file"命令来复制文件等。命令行界面适合专业用户和需要自动化操作的场景,它能够高效地完成复杂的任务。
    • 图形用户界面(GUI) :通过窗口、菜单、图标等图形元素来实现用户与计算机的交互。例如,在Windows操作系统中,用户可以通过鼠标点击桌面上的图标来打开应用程序,通过菜单选项来执行各种操作。图形用户界面更加直观、易于使用,适合普通用户。

请举例几种不同类型的操作系统,并简要说明它们的特点

  1. Windows操作系统(以Windows 10为例)
    • 特点
      • 广泛的软件兼容性 :由于Windows在个人计算机市场占据主导地位,大多数软件开发商都会优先为其开发软件。无论是办公软件(如Microsoft Office)、图形设计软件(如Adobe Photoshop)还是游戏软件,都能很好地在Windows系统上运行。
      • 图形用户界面友好:拥有直观的图形用户界面(GUI),通过开始菜单、任务栏和桌面图标等元素,用户可以方便地打开和切换应用程序。例如,用户可以通过点击"开始"菜单,在搜索框中输入应用程序名称来快速启动软件。
      • 易于使用的设备管理:对各种硬件设备的支持较好,在设备安装方面,系统会自动检测并安装大多数常见设备的驱动程序。比如,当插入一个新的U盘时,系统会自动识别并安装驱动,用户可以很快地开始使用该设备。
      • 适合多种场景:不仅用于个人办公和娱乐,也适用于一些小型企业的办公环境,提供了如共享文件夹、远程桌面等功能,方便用户在局域网内进行文件共享和远程控制。
  2. Linux操作系统(以Ubuntu为例)
    • 特点
      • 开源和免费 :Ubuntu是基于Linux内核的开源操作系统,用户可以自由地获取、修改和分发系统代码。这吸引了众多开发者为其开发软件和改进系统。
      • 高度安全性和稳定性:由于其开源的特性,许多安全漏洞能够被全球的开发者及时发现和修复。同时,在服务器领域,Ubuntu等Linux系统能够长时间稳定运行,为网络服务提供可靠的支持。例如,许多互联网公司使用Ubuntu服务器来运行Web服务器(如Apache、Nginx)和数据库服务器(如MySQL、PostgreSQL)。
      • 强大的命令行功能:拥有丰富的命令行工具。用户可以通过命令行完成诸如文件管理(如"ls"命令查看文件列表、"cp"命令复制文件)、系统配置(如修改网络配置文件)、软件安装(如"apt - get"命令安装软件)等多种任务。这使得它在系统管理和自动化操作方面具有很大的优势。
      • 多用户和多任务支持:可以同时支持多个用户登录和多个任务并发执行。例如,在一个服务器环境中,多个用户可以通过SSH(Secure Shell)远程登录到系统,同时运行不同的任务,系统能够很好地分配资源,保证每个用户的任务顺利进行。
  3. macOS操作系统(以macOS Big Sur为例)
    • 特点
      • 与苹果硬件高度集成 :macOS是专门为苹果公司的Mac电脑设计的操作系统,它与苹果硬件(如MacBook的视网膜显示屏、Magic Keyboard、Magic Mouse等)无缝配合,能够充分发挥硬件的性能优势。例如,在Mac电脑上,系统可以利用硬件的高分辨率显示屏提供清晰锐利的图像显示效果。
      • 简洁美观的用户界面:具有简洁而富有美感的图形用户界面,设计风格统一。其菜单栏、Dock栏等元素方便用户操作。例如,用户可以将常用的应用程序固定在Dock栏上,通过点击图标快速启动应用。
      • 注重用户隐私和安全:在用户隐私保护方面采取了诸多措施。例如,系统会询问应用程序是否可以访问用户的位置、摄像头、麦克风等隐私信息,并且可以在系统设置中方便地管理这些权限。同时,由于macOS的封闭性和苹果公司的严格审核机制,恶意软件相对较少。
      • 适合创意工作和高端办公:自带了一系列适合创意工作的应用程序,如iMovie(视频编辑)、GarageBand(音乐创作)等。并且在办公领域,与苹果的办公软件套装(如Pages、Numbers、Keynote)配合良好,为高端办公用户提供了高效的工作环境。
  4. Android操作系统(以Android 12为例)
    • 特点
      • 移动设备定制性强 :是一个开源的移动操作系统,手机厂商可以根据自己的需求对其进行定制。例如,三星、小米等厂商可以在Android系统的基础上添加自己的用户界面(如One UI、MIUI)、特色功能(如三星的S Pen支持、小米的红外遥控功能)等。
      • 丰富的应用生态系统:有大量的应用程序可供用户选择,涵盖了从生活服务(如外卖、打车应用)到娱乐(如游戏、视频播放应用)等各个领域。用户可以通过Google Play商店或其他第三方应用商店获取这些应用。
      • 支持多种硬件设备:除了智能手机,还可以用于平板电脑、智能手表、智能电视等多种移动和物联网设备。例如,在智能手表上,Android系统可以提供运动监测、消息提醒等功能。
      • 云端服务集成:与Google的云端服务紧密集成,如Google Drive(云存储)、Google Photos(照片存储和管理)等。用户可以方便地将手机中的数据备份到云端,并且在不同的设备上进行同步。
  5. iOS操作系统(以iOS 15为例)
    • 特点
      • 封闭生态系统的安全性高 :iOS是苹果公司为其移动设备(如iPhone、iPad)开发的操作系统,其应用生态系统是封闭的。所有应用程序都需要经过苹果公司的严格审核才能上架App Store,这大大减少了恶意软件的风险,保证了系统的安全性。
      • 用户体验的一致性:在不同的苹果移动设备上提供了一致的用户体验。无论是iPhone还是iPad,用户界面的布局、操作方式等都基本相同,方便用户在不同设备之间切换使用。例如,用户在iPhone上熟悉的控制中心,在iPad上也有类似的功能,只是布局根据设备的大小进行了调整。
      • 与其他苹果设备的协同性:与Mac电脑、Apple Watch等苹果设备之间具有出色的协同工作能力。例如,用户可以通过"接力"功能在Mac电脑和iPhone之间无缝切换任务,或者通过Apple Watch接收iPhone上的通知并进行简单的操作。
      • 注重隐私保护和性能优化:像macOS一样,iOS在隐私保护方面有严格的措施,会明确告知用户应用程序对隐私数据的访问情况,并让用户可以控制这些权限。同时,苹果公司会根据设备的硬件特点对iOS系统进行性能优化,以确保在有限的硬件资源下提供流畅的操作体验。
相关推荐
吉大一菜鸡24 分钟前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
CCSBRIDGE3 小时前
Magento2项目部署笔记
笔记
亦枫Leonlew4 小时前
微积分复习笔记 Calculus Volume 2 - 5.1 Sequences
笔记·数学·微积分
爱码小白4 小时前
网络编程(王铭东老师)笔记
服务器·网络·笔记
LuH11245 小时前
【论文阅读笔记】Learning to sample
论文阅读·笔记·图形渲染·点云
chengooooooo5 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展
码农爱java6 小时前
设计模式--抽象工厂模式【创建型模式】
java·设计模式·面试·抽象工厂模式·原理·23种设计模式·java 设计模式
一棵开花的树,枝芽无限靠近你6 小时前
【PPTist】组件结构设计、主题切换
前端·笔记·学习·编辑器
测试杂货铺6 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
Jiude6 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试