리눅스 이야기 #1

이선재·2022년 10월 7일
0

linux-arch

목록 보기
1/2
post-thumbnail

1. 컴퓨터 시스템의 개요

세상에는 다양한 종류의 컴퓨터 시스템이 넘쳐나고 있다. 컴퓨터, 스마트폰, 태블릿 등... 이러한 컴퓨터 시스템을 기반으로 동작하는 디바이스들은 대게, 다음과 같은 순서로 동작한다.

<컴퓨터 시스템 동작 순서도>

1. 사용자 입력 창치 혹은 네트워크 어댑터를 통해 무언가 처리 요청
2. 메모리에 있는 명령을 읽어 CPU에서 실행하고 그 결과값을 다시 메모리에 기록
3. 메모리의 데이터를 하드디스크나 SSD 등의 저장 장치에 기록 또는 네트워크를 통해 
   다른 컴퓨터에 전송하거나 디스플레이 등의 출력장치로 결과값 도출
4. 1부터 반복해서 실행

위 순서를 반복하여 하나의 기능으로 정리한 것이 프로그램이다.

<프로그램 세분화>

  • 애플리케이션: 사용자가 직접 사용한다. 실제 오피스 프로그램 등이 포함된다.
  • 미들웨어: 여러 가지 애플리케이션이 공통으로 사용하는 처리를 묶어서 애플리케이션 실행을 도와준다. xml, properties 등을 자동으로 인식하여 처리해준다.
  • OS: 하드웨어를 직접 조작하여 애플리케이션이나 미들웨어의 실해에 필요한 기능을 제공한다.

일반적으로 OS(멀티 프로세스 지원)는 프로그램을 프로세스 단위로 실행하며 하나의 프로그램은 하나 혹은 여럿의 프로세스로 구성된다. 이러한, OS가 없을 시 프로세스 별 조작 코드를 작성해 주어야 한다.

<OS가 없을 시 단점>

  • 디바이스 스펙을 상세히 알아야한다.
  • 개별 개발로 비용이 증가한다.
  • 멀티 프로세스 동시 동작 시 예상 외 동작 발생이 가능하다.

➡️ 따라서 리눅스는 디바이스 드라이버를 사용 이를 통해서만 디바이스를 다룬다.
⍩ 이러한 룰을 어길 시 멀티 프로세스가 동시에 디바이스를 조작 시도하는 상황이 발생
⍩ 리눅스는 CPU에 있는 기능을 이용, 프로세스가 직접 하드웨어에 접근을 차단

➡️ 리눅스는 디바이스의 종류가 같으면 동일 인터페이스를 사용한다.

< CPU >

  • 커널모드, 사용자 모드로 나뉨

  • 커널모드
    1. OS의 핵심 부분이 되는 처리를 모아 담당하는 프로그램
    2. 시스템에 탑재된 CPU, 메모리 등 리소스를 관리
    3. 리소스 일부를 시스템에 존재하는 각 프로세스에 분배

    	디바이스에 접근 가능 / 프로세스 관리 시스템 / 프로세스 스케줄링 / 메모리 관리 시스템
  • 사용자 모드
    프로세스 동작 가능

<시스템콜>

프로세스가 디바이스 드라이버를 포함한 커널이 제공하는 기능을 사용하려 할때 커널에 요청하는 방식이다.

프로세스 와 커널과의 인터페이스 역할을 가진다.

profile
지적을 환영하는 인프라 냠냠을 시도하는 취준생

0개의 댓글