본문 바로가기
잡동사니

[운영체제 개념]

by L3m0n S0ju 2021. 10. 1.

I/O

 

 

I/O -> CPU가 레지스터에 읽고 쓰는 동작

 

I/O 처리기법 1 -> 폴링 -> 지속적으로 특정 이벤트의 도착 여부를 확인 -> 인터럽트와 반대되는 개념

 

I/O 처리기법 2 -> DMA -> CPU에 I/O 인터럽트가 들어오면 CPU는 DMA에게 I/O처리를 요청함. DMA가 I/O처리를 하는 동안 CPU는 다른 일을 수행함. DMA가 동작을 마치면 CPU에 인터럽트를 발생시켜서 작업이 완료되었음을 알림.

 

 

 

 


프로그램 vs 프로세스

=======                            ==============    high address

|   header   |                          |         stack          |

| text(code) |             =>         |         heap          |

|     data    |                          |          bss            |

=======                            |         data            |

                                          |       text(code)      |

                                          ==============   low address

 

 

 

 

 


커널 종류

 

Monolithic kernel

장점: 어플리케이션과 모든 커널 서비스가 같은 주소 공간에 위치하기 때문에, 시스템 콜 및 커널 서비스 간의 데이터 전달 시에 오버헤드가 적음

 

단점: 모든 서비스 모듈이 하나의 바이너리로 이루어져 있기 때문에 일부분의 수정이 전체에 영향을 미침 각 모듈이 유기적으로 연결되어 있기 때문에 커널 크기가 커질수록 유지 보수가 어려움 한 모듈의 버그가 시스템 전체에 영향을 끼침

 

 

 

 

 

 

Microkernel

 

장점

-> 각 커널 서비스 서버가 따로 구현되어 있기 때문에 서로 간의 의존성이 낮음, monolithic 커널 보다 독립적인 개발이 가능 커널의 개발 및 유지 보수가 상대적으로 용이

 

-> 커널 서비스 서버의 재시작/종료 가능, 불필요한 서비스의 서버는 종료 -> 많은 메모리 및 CPU utilization확보 가능

 

-> 이론적으로 micro 커널이 monolithic보다 안정적 문제 있는 서비스는 서버를 재시작하여 해결

 

-> 서버 코드가 protected memory에서 실행되므로 검증된 S/W 분야에 적합함, 임베디드 로봇 산업, 의료 컴퓨터 분야

 

단점

Monolithic 커널보다 낮은 성능을 보임 -> 독립된 서버들 간의 통신 및 Context switching

 

 

 

블록 I/O 처리 비교

 

 

 

 

 

 

 


문맥전환 

 

CPU가 일을 하다가 바뀌는 순간

 

1. Time quantum expires -> clock 시간이 지났을 때

2. I/O 호출 -> DMA에게 맡기고 다른 작업시작

 

 

다른 프로세스로 문맥전환하면 데이터는 어디로? -> PCB(Process Control Block)라는 곳에 저장

 



 

 

 


시스템콜

 

-> User mode에서 kernel mode로 진입하기 위한 통로 커널에서 제공하는 protected 서비스를 이용하기 위하여 필요

 

Open(2) : a file or device

Write(2) : to file or device

 

-> 문맥교환 없음

 

 

 

 

 

 

 


IPC(Interprocess Communication)

 

IPC -> 프로세스 간에 데이터 주고받기 위한 메커니즘

 

1. 메모리 공유 -> locking, 세마포어 -> 사용가자 동기화 구현

2. 메시지 교환 -> Pipe, Message Queue, 소켓 프로그래밍 -> 커널이 알아서 동기화

 

 

 

 

 


MMU(Memory Management Unit)

 

mmu -> 가상 주소와 물리 주소 간의 변환을 수행하는 하드웨어 장치

 

 

 

p에 페이지 번호, d에 가상 주소를 mmu로 전달하면 해당 페이지로가면 f 주소가 적혀있으므로 f 주소에 d를 더한 결과값의 주소로 이동하면 데이터에 접근할 수 있다.

댓글