kernel 4

#025_WIndow_System_커널 모드 동기화 객체_이벤트

안녕하세요 삽잡이입니다. 이번 시간에는 커널 모드 동기화 객체 중에 이벤트에 대해서 알아보려고 합니다. 이벤트는 다른 동기화 오브젝트와 동작방식 자체가 좀 다릅니다.지금까지 사용했던 동기화 객체들은 데이터 보호에 사용이 되었던 것이고,이벤트는 일반적으로 순서 제어에 사용됩니다.즉, 내가 원하는 시점에 그 이벤트가 신호 상태가 되도록 만드려는 매커니즘에 많이 사용됩니다. 이벤트는 '어떤 사건', '어떤 신호'를 말합니다.어떤 사건이 주어지면 신호 상태로 바꾸는 메커니즘이라는 것입니다.이벤트도 커널 오브젝트이기 때문에 신호, 비신호 상태를 가집니다. 이벤트에는 두 가지 종류가 있습니다. 바로 수동 이벤트와 자동 이벤트입니다. 우선 이벤트를 생성하기 위한 함수입니다.수동 이벤트와 자동 이벤트를 결정하는 인자는..

#017_WIndow_System_리소스

안녕하세요 삽잡이입니다.이번 시간에는 리소스에 관해서 생각해보는 시간을 가져보도록 하겠습니다. 프로세스는 우리가 더블클릭해서 실행될 수 있지만, 다른 프로세스에 의해 실행될 수 있습니다.이와 같은 경우는 커널 오브젝트에서는 쓰레드와 프로세스가 있습니다.create 함수에 의해 생성될 수 있지만, 프로세스와 쓰레드는 다른 프로세스에 의해 실행 될 수도 있다는 것입니다. 프로세스는 쓰레드와 함께 리소스가 사라져도 해당 프로세스나 쓰레드의 정보를 받아가기 위한 정보가 존재하는 특징을 가지고 있습니다.다른 놈들은 이벤트가 제거되면 더 이상 이벤트를 사용할 놈이 없기 때문에 필요 없습니다.즉, 리소스가 없어지는 순간 커널 오브젝트의 의미가 없어진다는 것입니다. 하지만, 프로세스나 쓰레드는 리소스가 없어도 정보를 ..

#016_WIndow_System_커널 오브젝트 & 핸들 테이블

안녕하세요 삽잡이 입니다. 이번 시간에는 핸들 테이블에 관해서 정리해보려고 합니다. 프로세스는 내부적으로 커널 오브젝트 핸들 테이블을 가지고 있습니다. 여기서 커널 오브젝트란, 커널에서 관리하는 중요한 정보들을 담아둔 데이터 블록을 말합니다. 즉, 프로세스들은 OS가 관리합니다. 그리고 관리를 위해 구조체 하나를 만들게 된 것입니다. 프로세스가 생성될 때마다 이 구조체가 하나씩 생성되고 프로세스의 정보들이 초기화 되는데, 이를 우리는 '커널 오브젝트'라고 부르는 것입니다. 아무튼... 프로세스는 내부적으로 이 커널 오브젝트 핸들 테이블을 가지고 있는 것입니다. 이 핸들 테이블이 필요한 이유는, 모든 프로세스가 커널 오브젝트를 받을 때 커널 오브젝트를 관리하기 위해서 입니다. 또한, 이 커널 오브젝트 핸들..

[Surro] :: 1. 리눅스 커널의 이해

* 커널이란? - 운영체제의 핵심 부분. : DRAM(동적 RAM)에 상주하여 시스템의 구동에 필요한 환경설정과 수행되는 프로그램을 스케줄링하는 소프트웨어. +스케줄링 : 컴퓨터 시스템을 구성하고 있는 주기억장치, 입출력장치, 처리시간등의 시스템 자원을 언제 배분할 것인가를 결정하는 프로그램 기능. - 시스템 자원 관리. - 모든 시스템이 원할하게 작동할 수 있도록 제어하는 소프트웨어. * 커널의 세부 기능 - Task 관리 (Task Management) : 물리적인 자원을 task라는 추상적인 자원으로써 제공해줌. > task의 생성, 실행, 스케줄링, 프로세스간 통신등의 서비스를 제공. + Task : 컴퓨터 상에서 하나의 작업. + Process : 컴퓨터 상에서 하나의 작업을 이루는 과정. + ..