Hope Everyone Is Happy

1. 운영체제의 역할과 구조 본문

※ CS 스터디/운영체제

1. 운영체제의 역할과 구조

J 크 2023. 9. 9. 23:37
728x90
반응형

본 게시글은  : 면접을 위한 CS 전공지식 노트 (출판사 : 길벗, 주홍철 지음) 을 참조하여 작성하였습니다. + 구글링


◆  운영체제 (OS, Operating System)

- 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스(?)

- 한정된 메모리나 시스템 자원을 효율적으로 분배

- 운영체저와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어(FirmWare)로 정의

- 일반적으로 웹 브라우저, 워드, 게임 등의 응용프로그램 을 실행할 때는 사용자 영역의 메모리에 존재

- 운영체제는 커널 영역이라는 메모리에 저장되며 사용자 영역의 프로그램을 관리

Ref : 조코딩


◆  운영 체제 역할

- 운영체제의 역할은 크게 4가지 존재

- CPU 스케줄링과 프로세스(Process) 관리

    : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원(Resource) 할당 및 반환을 관리

    1. 프로그램들은 사용자 영역이라는 메모리 공간에 저장된 상태

    2. 메모리들은 실행되기 위해 CPU 필요 (일단 제어장치에서 메모리를 읽자고 요청해야 시작) 

    3. 결과적으로, 여러 프로세스가 실행 될 때 누가 먼저 CPU를 사용할지, 얼마나 오래 유지할지 관리 필요

    ex) 윈도우에서 작업관리자의 프로세스 항목들을 보면 알아서 잘 관리되는 것 확인 가넝

- 메모리 관리

    : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리

    1. 운영체제는 사용자 영역에서 프로그램이 실행 될 때 원하는 메모리 주소에 적재

    2. 한정된 메모리 상황에서 사용자 영역 내 프로그램 실행 시 관리 필요

- 디스크 파일 관리

    : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리

- I/O 디바이스 관리

    : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고 받는 것은 관리


◆  운영체제의 구조

운영체제의 구조는 아래 그림과 동일

- 유저 프로그램이 맨위에 존재, 그 다음에 GUI, 시스템콜, 커널, 드라이버, 하드웨어로 구성된 구조

- GUI, 시스템콜, 커널, 드라이버 부분이 운영체제에 해당

- GUI가 없고 CUI만 있는 리눅스 서버도 존재

- GUI : 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태

         : 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호 작용 가능

- 드라이버 : 하드웨어를 제어하기 위한 소프트웨어

- CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스

- 시스템콜

     : 운영체제가 커널에 접근하기 위한 인터페이스

     : 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용

     : 유저 프로그램이 I/O 요청 으로 트랩을 발동하면, 올바른 I/O 요청인지 확인

     : 확인 완료 후, 유저 모드가 시스템콜을 통해 커널모드로 변환 되어 실행

         ex) fs.readFile()이라는 파일 시스템의 파일을 읽는 함수를 실행하면,

           1. 유저 모드에서 파일을 읽지 않고 커널모드로 들어감

           2. 파일을 읽고 다시 유저모드로 돌아감

           3. 그 뒤에 있는 유저 프로그램의 로직을 수행

             위 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단할 수 있고 프로그램을 다른 프로그램으로부터 보호

- 시스템콜, 커널, 운영체제 관계

     : 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 OS에 전달

- 시스템콜은 하나의 추상화 계층

- modelbit

    : 시스템콜이 작동될 때 modelbit을 참고해서 유저 모드와 커널 모드를 구분 

    : 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서 작동해야 함

    : 시스템콜을 호출하여 modelbit을 0으로 바꾸어 커널 모드로 변경 후 I/O 디바이스 자원을 이용한 로직 수행

    : 완료 후 0에서 1로 바꾸어 유저 모드로 변경, 이후 로직을 수행

    ex) 카메라 자원 사용 과정 


 

위의 글과 관련하여 추가적인 내용이나 피드백은 언제나 환영입니다 :)

'※ CS 스터디 > 운영체제' 카테고리의 다른 글

6. 스레드  (0) 2023.11.06
5. 프로세스  (0) 2023.09.19
4. 메모리 관리  (0) 2023.09.13
3. 메모리 계층  (0) 2023.09.12
2. 컴퓨터의 요소  (0) 2023.09.10