본문 바로가기

프로그래밍/컴퓨터공학

[운영체제 학습 노트] 운영체제와 커널의 자원 독점 관리, 자원 접근의 문제점

728x90
반응형

운영체제

정의

사용자와 컴퓨터 사이에서 중계 역할을 하면서 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어 또는 인터페이스

 

목적

1. 자원을 독점 관리하여 자원 충돌 해결 및 효율적 사용과 관리

2. 시스템 성능 최적화 및 효율화

3. 편리한 사용자 인터페이스 제공

 

기능

1. CPU/프로세스 관리

2. 메모리 관리

3. 파일 시스템 관리

4. 장치 관리

5. 사용자 인터페이스 제공

 

운영체제의 발전

1. 폰노이만의 내장프로그램 운영체제

  • CPU와 메모리를 분리
  • 하드웨어와 소프트웨어를 분리
  • 실행할 프로그램을 메모리에 적재 후 CPU가 프로그램을 실행

2. 원시 운영체제

  • 로더 프로그램을 메모리에 적재
  • 사용자 프로그램을 메모리에 적재
  • CPU가 사용자 프로그램을 실행

3. 배치 운영체제

  • 펀치카드를 한번에 하나씩 순서대로 메모리에 적재하여 실행

4. 다중 프로그램 운영체제

  • 여러 프로그램을 메모리에 올려 놓고 동시에 실행
  • I/O가 발생하면 CPU가 다른 프로그램을 실행
  • CPU 활용률 증가 -> 처리율 증가
다중 프로그램은 한 프로세스가 입출력을 시행하면 다른 프로세스로 교체 실행하므로 여러 프로세스를 동시에 실행하는것이다. 이러한 입출력은 인터럽트를 통해 알수 있는데, 인터럽트가 없다면 계속 검사해야해서 비효율적이다. 인터럽트의 효과는 CPU 활용률, 시스템 처리율 향상등이 있다.

5. 시분활 다중프로그래밍 운영체제

  • 여러 프로그램을 시간 단위로 나누어 번갈아 실행시키는 기법
  • 각 프로그램에게 동일한 시간할당량 만큼씩 번갈아 실행시키는 스케줄링 기법(라운드 로빈)

 

컴퓨터 시스템

계층 구조

응용소프트웨어 - 운영체제 - 하드웨어

 

특징

1. 사용자는 운영체제를 통해 컴퓨터를 활용한다.

2. 하드웨어들은 운영체제의 베타적이고 독점적인 지배를 받는다.

3. 사용자나 응용프로그램은 반드시 운영체제를 통해서 하드웨어에 접근한다.

CPU 레지스터
1. PC(Program Counter): 다음에 실행할 명령의 메모리 주소 저장
2. IR(Instruction Register): 메모리에서 읽어온 명령어 저장
3. SP(Stack Pointer): 스택 영역의 꼭대기 주소 저장

 

운영체제가 프로그램을 실행할 때 사용하는 공간

1. 코드공간: 프로그램의 코드가 들어가는공간

2. 데이터공간: 전역 데이터

3. 힙공간: 동적 데이터

4. 스택공간: 함수, 변수 등등이 실행되고 돌아갈 주소 저장

 

커널

정의

부팅될 때 메모리에 적재되고 응용프로그램이 자원에 접근하기 위해 호출 할 때 실행되어지며 하드웨어를 제어하는 역할을 한다.

자원의 모든 접근 권한은 커널에만 부여하는 이유 = 
다중 사용자/다중 프로세스 응용프로그램이 하드웨어에 직접 접근시 생기는 문제점 방지
1. 응용프로그램이 다른 프로그램이 적재된 메모리를 덮어쓸 수 있다.
2. 다른 응용프로그램이 생성한 파일을 삭제하거나 실행을 망칠 수 있다.
3. 운영체제 커널이 적재된 메모리를 액세스 하여 커널을 훼손할 수 있다.
-> 응용프로그램의 직접적인 자원 접근을 불허한다. 

 

세부 역할

1. 프로세스와 스레드 관리

2. 메모리 관리

3. 파일 시스템 관리

4. 디바이스 드라이브 관리

 

시스템 호출(System Call)

커널과 응용프로그램 사이의 인터페이스

 

인터럽트(Interupt)

커널과 하드웨어 장치 사이의 인터페이스

 

컨텍스트 스위칭

정의

현재 실행중인 컨텍스트를 저장하고 다음 실행할 프로그램의 컨텍스트를 cpu로 옮겨서 실행하는것

 

위치

시스템 호출, 인터럽트 서비스 루틴

 

운영체제 공간

1. 사용자 공간: 응용프로그램이 적재되고 할당받는 곳

2. 커널 공간: 커널 코드와 데이터, 스택이 저장

운영체제가 공간을 나누는 이유: 응용프로그램으로부터 커널코드와 데이터를 지키기 위해
사용자 공간과 커널 공간은 메모리의 물리적 공간이 아니다. 메모리와 매핑테이블을 두고 만들어지는 가상 공간이다.

 

특권명령

정의

컨텍스트 스위칭, 인터럽트 처리를 비롯한 커널모드(특권모드)에서만 사용할 수 있는 명령

커널모드: 운영체제가 호출되어 모든 자원에 접근할 수 있는 모드

 

 

728x90
반응형