프로그래밍[Univ]/운영체제

[OS] 기초

Cloud Travel 2012. 3. 18. 13:44
* 프로세스 
 - 중앙처리장치로 전원이 켜지면 메모리의 첫부분을 읽어서 실행시킨다.
 - 프로세스의 구조
  > Control Unit : 명령어를 해석하는 명령어 해석기, 제어 로직으로 구성됨
  > ALU(Arithmetic and Logic Unit) : 산술연산 및 논리 연산을 수행하며 레지스터라는 메모리를 가짐
  > Registers : ALU의 산술, 논리 연산을 위한 저장장소.  
   ⓐ General register : 프로그램, 데이터 처리를 위한 레지스터
   ⓑ Stack register, Program Counter register : 프로그렘 제어 및 프로세서 제어 레지스터
   ⓒ status register : error를 체크하는 레지스터
   ⓓ Instruction register : 데이터 어드레싱, 데이터 처리를 위해 사용되는 레지스터로 현재 명령어 저장

  - 프로세스의 기본기능
  ⓐ 메모리에서 명령어 읽기
  ⓑ 메모리에 데이터 쓰기
  ⓒ 메모리에서 데어터 읽기
  ⓓ IO장치에 데이터 쓰기
  ⓔ IO장치에 데이터 읽기
  ⓕ 연산
 - 프로세스는 memory에 직접적연결이 불가능하다. 레지스터를 통해서 이뤄져야한다.
 - 프로세스와 레지스터간 중간 저장장소 cache가 존재.
 - 프로세스 모드(mode)  
  ⓐ user mode : 제한된 명령어만 실행
  ⓑ kernal mode : 제한 없이 모든 명령어 실행
  > 시스템 보호, 보안을 위해서 이렇게 모드를 나눠서 사용을 한다.

 - 프로세서 명령어 : 기계어(어셈블리)

* 버스 : 컴퓨터 시스템 각 부분 사이에 전기적 신호를 전달하는 역할은 한다.

* 메모리 
 - 휘발성 메모리와 비휘발성 메모리로 나뉜다.
 - 휘발성 메모리의 대표적인 것으로 RAM, 비휘발성 메모리의 대표적인 것으로 ROM이 존재한다.
 - 휘발성일수록 메모리의 속도가 빨라지며, 용량이 작아진다.
 - 메모리 계층 : register <-> cache <-> main memory 
 
* 캐싱(caching)
 - 사용중인 데이터를 느린 저장장치에서 빠른 저장장치로 임시로 복사하는 것
 - 자주 사용될 여지가 있는 데이터를 임시로 저장하여 빠른 속도로 데이터에 접속할 수 있도록 도와준다.
 - 캐싱 자료를 모아 놓는 메모리를 cache라고 한다.
 - 캐싱에 있어서 cache메모리는 재한적이므로, cache가 꽉찼을때 해주는 교체정책을 잘 선택해야한다.

* Interrupt
 - CPU에 어떠한 사건이 발생했음을 알리는 것으로 하드웨어의 인터럽트(I/O장치의 입출력 종료)와
   소프트웨어 인터럽트(트랩:프로그램 오류, 시스템 호출)등으로 나뉜다.
 - 인터럽트가 발생하면 CPU는 현재 수행하던 일을 중단하고 인터럽트 서비스 루틴을 수행한다.
   인터럽트 서비스 루틴은 커널 모드에서 수행되기 때문에 인터럽트가 발생하면 잠시 임의로 모드가 변경된다. 

* 운영체제
 - 사용자와 컴퓨터 하드웨어 사이에서 매개체 역할을 하는 프로그램
 - 컴퓨터 하드웨어와 응용 프로그램간의 인터페이스 역할을 하며 컴퓨터 자원을 관리해준다.
 - 관점으로 나눠서 보면 사용자 관점으로는 프로그램을 수핼할 수 있는 UI를 제공해주며,
   시스템 관점으로 보면 하드웨어를 효율적으로 관리 할 수 있는 수단을 제공해준다. 
 - 운영체제의 중요 기능
  ⓐ  프로세스 관리
  ⓑ 메모리 관리
  ⓒ 저장장치 관리
  ⓓ 파일 시스템
  ⓔ 입출력 장치 관리
  ⓕ 보호 / 보안