CS
[CS / 운영체제] 3.1 운영체제와 컴퓨터
개발하는 감자입니다
2024. 5. 21. 21:26
728x90
안녕하세요! 개발감자입니다.
오늘은 CS의 운영체제 중에서도 3.1 운영체제와 컴퓨터 에 대해서 정리해보았습니다.
3.1 운영체제와 컴퓨터
운영체제 : 하드웨어와 소프트웨어를 관리
컴퓨터 : cpu, 메모리 등으로 이루어짐
운영체제(Operating System)
- 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스
- 한정된 메모리나 시스템 자원을 효율적으로 분배
- 운영체제와 유사하지만, 소프트웨어를 추가적으로 설치할 수 없는 것 : firmware(펌웨어)
3.1.1 운영체제의 역할과 구조
- 운영체제의 역할
- CPU 스케줄링과 프로세스 관리
- CPU 소유권을 어떤 프로세스에 할당할 것인가?
- 프로세스의 생성, 삭제 , 자원 할당 및 반환 관리
- 메모리 관리
- 한정됨 메모리를 어떤 프로세스에 얼만큼 할당할 것인가?
- 디스크 파일 관리
- 디스크 파일을 어떠한 방법으로 보관할지 관리
- I/O 디바이스 관리
- 마우스, 키보드와 컴퓨터 간의 데이터 주고 받는 것을 관리
- CPU 스케줄링과 프로세스 관리
- 운영체제의 구조
→ 빨간색으로 지정한 부분이 운영체제를 칭함
- 유저프로그램
- GUI
- 시스템콜
- 커널
- 드라이버
- 하드웨어
리눅스는 GUI가 없는 대신 CUI만 존재하기도 함.(CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스)
- GUI
- 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용할 수 있는 사용자 인터페이스
- 시스템콜
- 운영체제가 커널에 접근하기 위한 인터페이스 (추상화 계층)유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 씀
- 컴퓨터 자원에 대한 직접 접근 차단 및 보호 기능
- 네트워크 통신, 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경쓰지 않고 프로그램 구현 가능
- I/O 요청 : 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
- modeit (0:커널모드 1:유저모드)
- I/O 디바이스는 운영체제를 통해 제어
- 유저기반으로는 제어 불가능 (커널모드로만)
- 시스템콜 작동 시, modeit을 참고하여 모드 구분
- 상황 예시 : 카메라 이용
- 유저모드 : 카메라 이용 버튼 클릭 → 유저모드 : 시스템 콜 호출 (modeit 1→0) → 커널모드 : 카메라 자원을 이용한 로직 수행 → 유저모드 : 이후 로직 실행(modeit 0→1)
- 드라이버
- 하드웨어를 제어하기 위한 소프트웨어
3.1.2 컴퓨터의 요소
CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어짐
- CPU
- 산술 논리 연산 장치, 제어 장치, 레지스터로 구성되어 있는 컴퓨터 장치
- 인터럽트에 의해 단순히 메모리에 존재하는 명령어 해석 및 실행
- 운영체제(관리자)의 커널이 프로그램을 메모리에 올려 프로세스 실행 → CPU 가 이를 처리
- 프로세스 조작을 지시하는 CPU의 한 부분
- 입출력 장치 간의 통신 제어 및 명령어들을 읽고 해석 → 데이터 처리를 위한 순서를 결정
- 레지스터 : CPU 안에 있는 매우 빠른 임시기억장치
- CPU는 데이터를 저장할 수 없어 레지스터를 거쳐 데이터를 전달함
- 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로
- 제어장치가 메모리에 계산할 값 로드 (레지스터에도 로드)
- 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명렬
- 제어장치가 계산된 값을 다시 레지스터에서 메모리로 계산한 값을 저장
- 인터럽트
- 어떤 신호가 들어왔을 때 CPU를 잠시 정지시키는 것
- 발생하는 경우 : I/O 디바이스로 인한 인터럽트, 0으로 숫자를 나누는 산술연산에서의 인터럽트, 프로세스 오류
- 인터럽트 발생시 → 인터럽트 핸들러 함수가 모여 있는 인터럽트 터로 가 인터럽트 핸들러 함수 실행
- 인터럽트 핸들러 함수 : 인터럽트를 핸들링하기 위한 함수
- 인터럽트 간의 우선순위에 따라 실행
- 종류
- 하드웨어 인터럽트 : 키보드, 마우스 연결 등의 IO 디바이스로 인한 인터럽트
- 소프트웨어 인터럽트(트랩) : 프로세스 오류 등으로 시스템 콜 호출 시 발동
- DMA 컨트롤러
- I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
- CPU에만 너무 많은 인터럽트 요청이 들어옴 → CPU 부하를 막고 일을 부담해줌
- CPU와 동시에 같은 일을 하는 것을 방지함
- 메모리(memory)
- 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
- RAM(Random Access Memory)라고도 함
- 기억을 담당
- 타이머
- 몇 초 안에 작업이 끝나야 한다는 것을 정함 → 특정 프로그램에 시간 제한을 다는 역할
- 시간이 많이 걸리는 프로그램이 작동할 때에 제한을 걺
- 디바이스 컨트롤러
- 컴퓨터와 연결되어 있는 IO디바이스 들의 작은 CPU
면접을 위한 CS 전공지식 노트 | 주홍철 - 교보문고
면접을 위한 CS 전공지식 노트 | 디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지! CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다! 개발자 면
product.kyobobook.co.kr
이 포스팅은 면접을 위한 CS 전공지식 노트를 기반으로 작성되었습니다.
728x90
반응형