컴퓨터공학 공부

컴퓨터공학 공부 다시 시작하기 7주차 - 커널 모드와 사용자 모드 이해, 운영체제 역할 정리, 프로세스 개념 이해

개발학생 2024. 11. 3. 23:59
반응형

1. 커널 모드와 사용자 모드 이해

커널 모드와 사용자 모드

- 함부로 응용 시스템이 전체 컴퓨터 시스템을 헤치지 못하게 함

- 주민등록등본은 꼭 동사무소 또는 민원24시(정부사이트)에서 특별한 신청서를 써야 발급
  단, 동사무소 직원들은 특별한 권한을 갖고 주민등록등본 출력 가능

- 응용 프로그램 개발 시 운영체제 기능이 필요한 경우, 운영체제 별로 API를 사용해서 프로그램 작성
  -> 프로그래밍 언어별 로 운영체제 지원

  => 응용 프로그램 실행 시 해당 API를 호출하면,

       시스템 콜을 호출한 뒤 커널 모드로 변경한 후 OS 내부에서 API 호출 명령이 실행되고, 응용 프로그램에 결과 리턴

CPU Protection Ring

- 커널 모드(kernel mode): OS가 사용

- 사용자 모드(user mode): 응용 프로그램이 사용

시스템 콜은 커널 모드로 실행

- 시스템 콜은 운영체제가 제공

- 커널 모드에서만 실행 가능한 기능들이 있으며, 커널 모드로 실행하려면 반드시 시스템 콜을 거쳐야 함

2. 운영체제 역할 정리

- 사용자가 사용하는 응용 프로그램이 효율적으로 적절하게 동작하도록 지원

- 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고 지원

첫 번째 역할: 시스템 자원(System Resource) 관리자

- 컴퓨터의 다양한 하드웨어와 소프트웨어 자원을 효율적으로 관리하고 배분

 

1. 프로세스 관리

- 각 프로그램이 얼마나 CPU(중앙처리장치)를 사용할지 결정

- 여러 프로그램이 동시에 실행될 때 프로세스 간의 자원 경쟁을 조정하고,

    프로세스를 생성/종료/스케줄링하여 CPU를 효과적으로 배분

2. 메모리 관리

- 각 프로그램이 어느 주소에 저장되고 얼마나 Memory(메모리/DRAM, RAM) 공간을 확보해야 하는지 결정

- 시스템의 메모리(주기억 장치)를 각 프로세스가 효율적으로 사용할 수 있도록 할당하고 해제

- 가상 메모리 기법을 통해 제한된 물리적 메모리의 한계 극복

3. 파일 관리

- 저장매체(SSD, HDD[하드디스크])를 이용하여, 어떻게/어디에 저장할지 결정

- 파일 시스템을 구성하고 파일과 디렉토리를 관리하여 사용자와 프로그램이 데이터를 효율적으로 저장하고 검색

4. 입출력 장치 관리

- I/O Devices(하드웨어 입출력장치/모니터, 마우스, 키보드, 네트워크)와 프로그램 간 상호작용을 제어하여
  사용 효율 극대화

5. 보안 및 보호

- 시스템의 자원가 데이터를 보호하기 위해 사용자 접근 제어/권한 관리/암호화로 무단 접근 방지

두 번째 역할: 사용자와 컴퓨터 간의 커뮤니케이션 지원

세 번째 역할: 응용 프로그램 제어

출처: https://velog.io/@phc09188/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%99%80-%EC%9D%91%EC%9A%A9%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8

*운영체제 역할 큰 그림으로 이해하기

응용 프로그램이란?

- 프로그램 = 소프트웨어

- 소프트웨어 = 운영체제, 응용 프로그램(엑셀, 파워포인트, 개발자가 만든 기타 프로그램...)

- 응용 프로그램 = Application(일반 PC에서의 프로그램), App(스마트폰에서의 응용 프로그램)

운영체제와 응용 프로그램과의 관계 - 운영체제가 응용 프로그램을 관리

- 운영체제는 응용 프로그램을 실행시키고 권한을 관리해주며(관리자 권한으로 실행),

  응용 프로그램을 사용하는 사용자를 관리함

- 응용 프로그램은 누구나 만들 수 있기에,

  코드를 잘못 작성해서 프로그램이 다운되는 문제나 모든 파일을 삭제하는 문제나 CPU 용량을 차지하는 문제를 막음

3. 프로세스(process) 개념 이해

프로세스란?

- 정의: 메모리에 올려져서 실행 중인 프로그램

  -> 코드 이미지(바이너리): 실행 파일

  => 예시: 엑셀 프로그램과 엑셀 프로세스 : excel.exe(코드 이미지/바이너리)와 엑셀 프로세스

- 응용 프로그램은 여러 프로세스로 구성 가능

- 휴대폰에서 앱이 실행되어 있을 때가 앱이 프로세스로 실행될 때임 

배치 처리 시스템

- 여러 프로그램을 순차적으로 실행하게 함

-  문제점: 어떤 프로그램은 실행 시간이 너무 많이 걸려 다른 프로그램 실행 시에도 영향을 미침,
               동시에 여러 작업을 수행할 수 없음,
               다중 사용자를 지원할 수 없음

출처: https://melodist.github.io/docs/OS/Scheduling1

반응형