Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- grid-template-areas
- confirm()
- css#cascading#display#block#inline
- gird-row-end
- javascript
- prompt()
- Grid
- localStorage
- React
- package.json
- grid-column-end
- createElement
- javascipt
- CSS
- classList
- var
- variables
- valuable
- border-style
- mongodb
- foreach()
- grid-row-start
- scope
- grid-column-start
- box-shadow
- react-hook-form
- relative
- python #qqplot #qq-plot #code
- className
- collapsing-margins
Archives
- Today
- Total
data life
[운영체제] 운영체제란? 본문
운영체제 Operating System(OS)란?
🤷🏻♀️ + 📖 => 👩🏻💻
사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 설명서 같은 존재이다.
사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공해주며 이를 인터페이스(interface)라고 한다.
우리가 흔히 알고 있는 PC OS에는 윈도우, MacOS, 리눅스가 있다.
실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등을 사용할 수 있도록 만들어 준다.
운영체제의 구성
하드웨어 ↔ 운영체제 ↔ 셸 / 응용 프로그램 ↔ 사용자
🔸 운영체제의 핵심 : 커널(kernel)
🔸 운영체제의 인터페이스 : 셸(shell)
>> 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
>> 🐚 사용자와 커널 사이의 인터페이스를 감싸는 층 🐚
>> 종류 : 명령 줄 인터페이스(CLI) & 그래픽 사용자 인터페이스(GUI)
하드웨어 ↔ 운영체제 ↔ 시스템 호출 ↔ 라이브러리 or API ↔ 셸 / 응용 프로그램 ↔ 사용자
커널에 접근하기 위해 시스템 호출(system call) 이용
이때, API를 통해 시스템 호출에 접근한다.
왜 why? C나 C++과 같은 고급언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에
API 란?
컴퓨터와 사용자를 연결시키는 사용자 인터페이스와 반대로, API는 컴퓨터나 소프트웨어를 서로 연결한다.
프로그래밍 언어 별 운영체제 지원을 위해 운영체제 별 API를 지원한다.
보호 링(protection rings)
- user mode : 응용프로그램이 사용
- kernel mode : OS가 사용
응용프로그램 실행 시
[예제 코드]
char gbuff[100];
int main(int argc, char*argv[])
{
int leng;
int fp;
fp = open("/dev/mydrv", ....); // mydrv_open 호출
gbuff[0] = 10;
gbuff[1] = 20;
leng = 2;
write(fp, (void*) gbuff, leng); // mydrv_write호출
close(fp); // mydrv_release호출
return 0;
}
사용자 모드 -> open() 함수로 시스템 콜 호출 -> 커널모드 -> 연산 수행 후 다시 사용자 모드 -> open() 함수 이후의 코드 실행
운영체제의 역할
1️⃣ 시스템 자원 관리자
* 시스템 자원 = 하드웨어
- CPU, Memory
- I/O Devices
- 저장매체 (SSD, HDD)
운영체제를 통해서 컴퓨터 하드웨어를 관리 및 제어한다.
2️⃣ 사용자와 컴퓨터간 지원
3️⃣ 응용 프로그램 제어
- 실행
- 관한 관리
- 응용 프로그램 사용자 관리(로그인)