일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 코딩애플
- 인터럽트
- 운영체제와 정보기술의 원리
- CPU 스케줄링
- 시그널 핸들러
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 커널 동기화
- SQL
- 네트워크
- Extendable hashing
- 코딩테스트 [ ALL IN ONE ]
- 갤럭시 S24
- 반효경
- Git
- 개발남노씨
- 운영체제
- SDK
- 온디바이스AI
- B tree 데이터삽입
- 쉬운코드
- 데이터베이스
- vite
- 프로세스 주소 공간
- 김영한
- 트랜잭션
- 백엔드
- concurrency control
- recoverability
- 쉬운 코드
- 시스템프로그래밍
- Today
- Total
목록시스템프로그래밍 (7)
티끌모아 태산

Linear Address Space: Overal Kernel Memory Allocation The kernel is the highest priority component of the OS, hence the kernel memory allocation should not be deffered User Memory Allocation When allocating memory to user mode processes 사용자 모드 프로세스에 메모리를 할당할 때, 동적 메모리(즉, 물리적 페이지 프레임) 요청은 긴급하지 않은 것으로 간주됩니다. 예를 들어, malloc() 함수와 비교해 볼 때, 커널은 일반적으로 사용자 모드 프로세스에 페이지 프레임 할당을 지연시키려고 시도합니다. 사용자 프로그램은 신뢰..

Kernel Synchronization 커널 프로그래밍은 본질적으로 "공유 메모리 모델"을 사용합니다. '크리티컬 섹션'(또는 크리티컬 리전)이 존재합니다. 이는 완전히 그리고 "독점적으로" 실행되어야 하는 코드 섹션을 의미합니다. 즉, 여러 프로세스 혹은 스레드가 동시에 접근할 수 없는 영역입니다. '경쟁 상태'(race condition)는 피해야 합니다. 유니프로세서(단일 프로세서) 시대(예전) 비교적 단순했습니다. 동시 데이터 접근은 인터럽트가 발생했을 때만 가능했거나 커널 코드가 명시적으로 다른 작업을 재스케줄링했을 때만 일어났습니다. 멀티프로세서(SMP, Symmetric Multiprocessing) 지원(2.0~ 버전부터) 복잡합니다. 서로 다른 프로세서에서 실행되는 커널 코드가 정확히 ..

File System The kernel sub-system that manages file system directories in kernel and external memory; 커널 하위 시스템은 커널과 외부 메모리에서 파일 시스템 디렉터리를 관리합니다. and Linux supports many file system types, instances. There are several file systems; Disk-based file systems, Network-based file systems, and special file system. File System Software Architecture VFS Layer Virtual File System(VFS) 표준 UNIX 파일 시스템과 관련된..

System Call Principles 응용 프로그램(Applications)과 하드웨어(hardware) 사이에 추가적인 계층을 두는 것의 장점은 다음과 같습니다: 프로그래밍이 쉬워집니다(easy to program): 사용자가 하드웨어 장치의 저수준(low-level) 프로그래밍 특성을 인지할 필요가 없어집니다. 시스템 보안이 증가합니다(Increasing system security): 커널이 인터페이스 수준에서 요청의 정확성을 확인할 수 있습니다. 프로그램의 이식성이 증가합니다. (Increase program portability) 시스템 호출에 대해: UNIX 시스템은 사용자 모드(User Mode) 프로세스와 하드웨어 장치 간의 대부분의 인터페이스를 커널로 발행된 시스템 호출을 통해 구현합..

Interrupt interrupt는 사전적 의미로 to break in upon an action 이라는 뜻입니다. 컴퓨터 과학의 맥락에서 인터럽트는 불시에 발생할 수 있는 (드문) 사건들을 효율적으로 처리하는 방법을 제공합니다. 인터럽트는 하드웨어(네트워크 인터페이스 카드(NIC), 프린터, 디스크, 마우스, 키보드 등)와 CPU 사이의 통신 도구로 기능합니다. Taxonomy Synchronous interrupt, called exception or software interrupt is generated by the 'CPU' while executing instructions Programming error System call: requests by process for kernel serv..

이번 시간에는 리눅스 프로세스에 대해서 알아보겠습니다. 우선, 운영체제에 대해서 간략하게 알아보자면 운영체제(Operating System)는 사용자와 컴퓨터를 연결시켜주는 인터페이스 역할을 합니다. 즉 컴퓨터 하드웨어 바로 윗단에 올라와있는 소프트웨어로서 사용자에게는 더 나은 인터페이스를 제공하고 컴퓨터 하드웨어 자원을 효율적으로 관리하는 역할을 합니다. 그러면 리눅스 OS안의 핵심 코드인 커널에 대한 대략적인 Outlook을 보면 다음과 같습니다. Dual-Mode Operation(1) 현대의 CPU는 적어도 "User Mode"와 "Kernel Mode"라는 두 가지 운영 모드를 구분하는 하드웨어 지원을 제공합니다. User Mode(사용자 모드) 사용자를 대신하여 실행되며(Execution do..

앞으로 시스템 프로그래밍 과목에서 배운 내용을 정리해 보도록하겠습니다. 이번 장에서는 시스템 프로그래밍에 대해 간략하게 소개하는 시간을 갖도록 하겠습니다. System programming을 통해 리눅스 커널에 포커스를 맞춰, 커널에 있는 중요한 자료 구조, 알고리즘 그리고 프로그래밍 기술에 대해서 배워보겠습니다. System Programming 시스템 프로그래밍은 결국 리눅스의 커널을 이해하는 것입니다. (Understanding the Linux Kernel). 우리가 일반적으로 알고있는 리눅스는 Servers, Destop, Mobile, Embeded Sytem 등 많은 부분에 존재합니다. Linux is everywhere! 위 사진에서 확인할 수 있듯이, 리눅스는 모든 곳에서 사용되고 있습니..