컴퓨터 시스템을 4등분하면?
- 하드웨어
- 운영체제
- 어플리케이션 프로그램
- 사용자
운영체제란?
- 컴퓨터에서 항상 돌아가고 있는 하나의 프로그램
- '커널'이라고 불리곤 한다. -> OS의 핵심이다.
- 커널에는 두가지 타입의 프로그램이 속해있다.
- 시스템 프로그램
- 어플리케이션 프로그램
Bootstrap 프로그램이란?
- 컴퓨터에 전원이 들어올 때 가장 먼저 실행되는 프로그램
- 운영체제를 메모리에 로딩하는 프로그램
인터럽트(Interrupts)란?
- 하드웨어가 언제라도 인터럽트를 트리거할 수 있다.
- CPU로 신호를 보내서(주로 시스템 버스 방식) 트리거 함.
컴퓨터 구성요소
- CPU
- 프로세서
- 코어
- 멀티코어: 한 CPU 안에 여러 개의 코어가 붙어있는 것
- 멀티 프로그래밍(멀티 태스킹): 한번에 한개 이상의 프로그램이 돌아가는 것.
- 프로세스 여러개가 한번에 돌아감(유튜브보면서 문서 작성도 쓰고 등등 동시에 가능)
- CPU를 효율적으로 사용할 수 있음(time-sharing 시분할)
- CPU 스케줄링
- 시분할을 어떻게 효율적으로 할 것인가
- 어떤 프로세스를 다음에 실행할 것인가
운영의 두가지 모드
- 사용자 모드
- 커널 모드
가상화 기술(Virtualization)
- 하나의 하드웨어에서 추상화를 통해 여러 종류의 운영체제를 동작할 수 있게 해주는 기술
- VMM(Virtual Machine Manager)
- VMware, XEN, WSL, etc...
컴퓨팅 환경
- 전통적인 컴퓨팅
- 모바일 컴퓨팅
- 안드로이드, IOS 등
- 클라이언트-서버 컴퓨팅
- 웹 서버와 클라이언트 사이의 상호작용
- Peer-to-Peer 컴퓨팅(피투피 컴퓨팅)
- 음악 파일 공유 / 영화 공유
- 서버 없이 운영되는 컴퓨팅(클라이언트만 존재. 연결되어 있음)
- 클라우드 컴퓨팅
- AWS, Azure...
- 클라우드 안에 서버가 다 구축이 되어있고, 우리는 거기 접근해서 사용하기만 하면 됨.
- Real-Time 임베디드 시스템
- 화성 탐사 같은거(RTOS)
운영체제 사용자가 인터페이스하는 방법
- CLI: command line interface/command interpreter
- = shells: sh, bash, ls...
- GUI: graphical user interface
- Windows, Aqua for MacOS, KDE/GNOME for Linux, ...
- Touch-Screen Interface
- Android UI, iPhone UI, ...
시스템콜
- 컴퓨터 응용프로그램이 OS와 인터페이스하는 방법
'Computer Science > 운영체제' 카테고리의 다른 글
프로세스간 통신(IPC) (0) | 2022.12.01 |
---|---|
프로세스에 대해 이해해보자 (0) | 2022.11.22 |
운영체제란? (0) | 2022.11.15 |
연속 할당, 불연속 할당 (0) | 2022.07.26 |
컴퓨터 시스템 구조2(System Structure & Program Execution 2) (0) | 2022.06.29 |