• 온라인 도구
  • - 계산기
    • 문자 수
  • - 다운로드
    • TikTok 다운로드
    • DouYin 다운로드
  • - 웹 도구
    • BASE64
    • Base64→이미지
    • 이미지→Base64
    • URL 인코딩
    • JavaScript
    • 타임스탬프
    • 유니코드 변환기
    • JSON 형식
    • 확장자 수정
    • 목록 만들기
    • CSS 최적화
  • - 암호화 도구
    • MD5 암호화
    • 랜덤 생성기
  • - 이미지 도구
    • 이미지 압축
    • QR 코드 생성기
    • QR 코드 리더
    • 배경 화면 미리보기
    • 이미지 EXIF
  • - 정보 시트
    • 혈액형 유전
    • 의류 사이즈
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Linuxカーネルとその関連アーキテクチャの依存関係を深く解析
2021-12-02

Linux kernelが成功した2つの理由:

柔軟なアーキテクチャ設計により、多くのボランティア開発者が開発過程に簡単に参加することができます。

各サブシステム(特に改善が必要なもの)は、良好な拡張性を備えています。

この2つの理由でLinux kernelは絶えず進化し、改善することができます。

階層構造の原則:

the dependencies between subsystems are from the top down: layers pictured near the top depend on lower layers, but subsystems nearer the bottom do not depend on higher layers. このようなサブシステム間の依存性は、上から下、すなわち図中の上部のサブシステムが下部のサブシステムに依存するだけであり、逆にはだめである。

二、カーネルの役割

三、Linuxカーネルの全体アーキテクチャ

中心システムはプロセススケジューラProcess Schedulerであり、SCHED:残りのサブシステムはすべてプロセススケジューラに依存します。残りのサブシステムはプロセスをブロックし、リカバリする必要があるためです。1つのプロセスがハードウェア動作の完了を待つ必要がある場合、対応するサブシステムはこのプロセスをブロックします。このハードウェア動作が完了すると、サブシステムはこのプロセスをリカバリします。このブロックおよびリカバリ動作は、プロセススケジューラの完了に依存します。

上の図の各依存矢印には、次の理由があります。 プロセススケジューラ依存メモリマネージャMemory manager:プロセスが実行を再開する場合は、メモリマネージャによって実行するメモリを割り当てる必要があります。 IPCサブシステムはメモリマネージャに依存する:共有メモリメカニズムはプロセス間通信の方法であり、2つのプロセスを実行して同じ共有メモリ空間を利用して情報伝達を行う。

VFSはネットワークインタフェースNetwork Interfaceに依存する:NFSネットワークファイルシステムをサポートする;

VFS依存メモリマネージャ:ramdiskデバイスのサポート

メモリマネージャはVFSに依存します。スワップswappingをサポートするため、一時的に実行しないプロセスをディスク上のスワップパーティションswapにスワップし、保留状態にすることができます。

四、高度モジュール化設計のシステムは、分業協力に有利である。

五、システム中のデータ構造

六、サブシステムアーキテクチャ

スケジューリングポリシーモジュールscheduling policy module:CPUへのアクセス権を取得するプロセスを決定します。スケジューリングポリシーは、すべてのプロセスができるだけ公平にCPUを共有できるようにする必要があります。

アーキテクチャ関連モジュールarchitecture-specific moduleは、特定のアーキテクチャインタフェースチップのハードウェア詳細を遮断するための統一的な抽象インタフェースのセットを設計する。このモジュールはCPUと対話してプロセスをブロックして復元する。これらの操作には、各プロセスが保存する必要があるレジスタおよびステータス情報を取得し、ブロックまたはリカバリ操作を完了するためにアセンブリコードを実行することが含まれる。

アーキテクチャ依存モジュールarchitecture-independent moduleは、スケジューリングポリシーモジュールと対話して次の実行プロセスを決定し、アーキテクチャ関連コードを呼び出してそのプロセスの実行を復元します。さらに、このモジュールは、ブロックされたプロセスのメモリマッピング情報が正しく保存されることを保証するために、メモリマネージャのインタフェースを呼び出します。

システム呼び出しインタフェースモジュールsystem call interfaceは、Linux Kernelがユーザープロセスに明確に露出したリソースにユーザープロセスがアクセスできるようにします。適切な基本的に不変のインタフェース(POSIX規格)のセットを定義することによって、ユーザアプリケーションとLinuxカーネルをデカップリングし、ユーザプロセスがカーネルの変化の影響を受けないようにする。

(3)データ表示

スケジューラは、要素の各アクティブなプロセスtask_を維持するデータ構造を維持します。structインスタンス;このデータ構造には、プロセスをブロックおよびリカバリするための情報だけでなく、追加のカウントおよびステータス情報も含まれます。このデータ構造はkernelレイヤ全体で共通にアクセスできます。

(4)依存関係、データフロー、制御フロー

前述したように、スケジューラはメモリマネージャが提供する機能を呼び出し、実行を再開する必要があるプロセスに適切な物理アドレスを選択する必要があります。そのため、プロセススケジューラサブシステムはメモリ管理サブシステムに依存します。他のカーネルサブシステムがハードウェア要求の完了を待つ必要がある場合、それらはプロセススケジューリングサブシステムに依存してプロセスのブロックとリカバリを行う。この依存性は,関数呼び出しと共有task listデータ構造へのアクセスによって現れる.すべてのカーネルサブシステムは、現在実行中のプロセスを表すデータ構造を読み書きするため、システム全体を貫く双方向のデータストリームを形成します。

OSサービス層は、カーネル層のデータストリームと制御ストリームに加えて、ユーザプロセスに登録タイマのインタフェースを提供する。これにより、スケジューラによるユーザプロセスの制御フローが形成される。通常、スリープ・プロセスを起動する例は、ユーザ・プロセスがいつ起動されるか予知できないため、通常の制御フロー範囲ではない。最後に、スケジューラはCPUと対話してプロセスをブロックし、復元します。これにより、CPUは現在実行中のプロセスを中断し、カーネルが他のプロセスの実行をスケジューリングできるようにします。

2.メモリマネージャMemory Managerアーキテクチャ

(1)目標

メモリ管理モジュールは、プロセスが物理メモリリソースにどのようにアクセスするかを制御します。プロセス仮想メモリとマシン物理メモリとの間のマッピングは、ハードウェアメモリ管理システム(MMU)によって管理される。各プロセスには独自の仮想メモリ領域があるため、2つのプロセスには同じ仮想アドレスがある可能性がありますが、実際には異なる物理メモリ領域で実行されます。MMUはメモリ保護を提供し、2つのプロセスの物理メモリ空間が互いに干渉しないようにする。メモリ管理モジュールはまた、交換をサポートします。一時的に使用しないメモリ・ページをディスク上の交換パーティションに交換します。この技術により、プロセスの仮想アドレス・スペースが物理メモリのサイズより大きくなります。仮想アドレス空間の大きさはマシンワード長によって決定される.

architecture specific moduleは物理メモリにアクセスする仮想インタフェースを提供する。

アーキテクチャ依存モジュールarchitecture independent moduleは、各プロセスのアドレスマッピングおよび仮想メモリ交換を担当します。欠落エラーが発生した場合、どのメモリ・ページがメモリからスワップされるべきかをモジュールが決定します。このメモリ・ページのスワップ選択アルゴリズムはほとんど変更する必要がないため、ここでは独立したポリシー・モジュールは構築されていません。

システム呼び出しインタフェースsystem call interfaceは、ユーザプロセスに厳格なアクセスインタフェース(mallocおよびfree;mmapおよびummap)を提供する。このモジュールでは、プロセスでメモリを割り当てて解放し、メモリマッピングファイルの操作を実行できます。

(3)データ表示

メモリ管理は、各プロセスの仮想メモリから物理メモリへのマッピング情報を格納します。このマッピング情報はmm_に格納されるstruct構造インスタンスでは、このインスタンスのポインタは各プロセスのtask_に格納されます。structで。マッピング情報の格納に加えて、メモリマネージャがページを取得および格納する方法に関する情報もデータブロックに格納する必要があります。例えば、実行可能コードは、実行可能ミラーをバックアップストレージとして使用することができる。ただし、動的申請のデータはシステムページにバックアップする必要があります。△これは読めませんでした。


ソース元URL:https://dopubox.com/article/p/d58872adf1c95adb

기타 도구
  • 문자 수 TikTok 다운로드 DouYin 다운로드 BASE64 Base64→이미지 이미지→Base64 URL 인코딩 JavaScript 타임스탬프 유니코드 변환기 JSON 형식 확장자 수정 목록 만들기 CSS 최적화 MD5 암호화 랜덤 생성기 이미지 압축 QR 코드 생성기 QR 코드 리더 배경 화면 미리보기 이미지 EXIF 혈액형 유전 의류 사이즈
  • 英国を代表する作曲家ブリテンが世界平和を願って作った『戦争レクイエム』【クラシック今日は何の日?】
    2024-05-29

    原作者の意向は取り入れられたと日テレ
    2024-05-30

    古本屋を巡り、顧みられなくなった作品、作家を生き返らせた九大大学院教授没後20年 教え子や研究仲間を支える「清新な光景」
    2024-05-30

    黒柳徹子さん、北京で特別授業 「日本語勉強続けて」
    2024-05-31

    幸田文の名言「台所に立てば、…」【本と名言365】
    2024-05-30

    作曲家ビゼーの窮地を救った傑作オペラ『真珠採り』の聴きどころは?【クラシック今日は何の日?】
    2024-05-31

    鎌倉幕府の地頭から海の武士団・松浦党に…古文書群「青方文書」からみる中世の漁業や製塩事情
    2024-06-01

    鳥取・大山でたいまつ行列 夏山開き前夜祭
    2024-06-01

    道後温泉の記憶を継承するアート 大竹伸朗が“描き”重要文化財を守ったテント膜「熱景」の再生
    2024-06-03

    「ロバート」秋山さんが鳥取PR イリュージョニストに扮し
    2024-06-04

    本年入試私立公立とも志願者微減 栄光ゼミナール担当者にきく 埼玉中高入試最新動向
    2024-06-04

    特別展 「工芸的美しさの行方―うつわ・包み・装飾」が東京と京都で開催。日本の美術工芸を世界へ 
    2024-06-04

    「国芳の団扇絵 猫と歌舞伎とチャキチャキ娘」(太田記念美術館)開幕レポート。世界初の展覧会
    2024-06-04

    今週末に見たい展覧会ベスト12。山武市百年後芸術祭、版画の青春、北斎に三島喜美代まで
    2024-06-04

    東京都写真美術館で「今森光彦 にっぽんの里山」が開催へ
    2024-06-04

    田名網敬一「TANAAMI!! AKATSUKA!! / 45 rpm」展、集英社マンガアートヘリテージ トーキョーギャラリーで開催
    2024-06-04

    「ART OSAKA 2024」が7月18日より開幕。近代建築と現代美術のコラボレーションにも注目
    2024-06-04

    ビル・エヴァンスの名言「才能なんて取るに足りない」【本と名言365】
    2024-06-05

    田名網敬一の巨大インスタレーションが、世界初大規模回顧展「田名網敬一 記憶の冒険」に登場。国立新美術館で8月7日から
    2024-06-06

    アキナの山名さん骨折 毎日放送、ロケ中に転倒
    2024-06-06

    ©  Dopu Box
    💛