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 |
Tags
- 프로세스
- 폰노이만구조
- sdk
- 운영체제
- 버퍼
- closure
- 부트캠프
- 캐시
- 하버드구조
- 앱개발
- 폴링
- 스풀
- 계층형 구조 커널
- 인터럽트
- 마이크로 커널
- 멀티스레드
- 커널
- 폰노이만
- IODevice
- bus
- 코딩
- Swift
- Components
- 야곰아카데미
- 단일형 구조 커널
- kernel
- 멀티프로세스
- 스레드
- 컴퓨터구조
- API
Archives
- Today
- Total
생각, 고민, 문제해결의 기록
운영체제의 역할과 구조 본문
운영체제(Operating System)란?
컴퓨터 시스템의 하드웨어, 소프트웨어자원들을 효율적으로 운영 및 관리함으로써
사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 한 시스템 소프트웨어
운영체제의 역할
1. 시스템 자원 관리자 역할
- 시스템 자원은 컴퓨터의 하드웨어들을 뜻하고 운영체제가 그 하드웨어들을 관리
2. 사용자와 컴퓨터간의 커뮤니케이션 지원 역할
- 사용자가 컴퓨터를 사용할 수 있게끔 터미널(쉘) 인터페이스등을 제공
3. 응용프로그램 제어 역할
- 응용프로그램의 접근권한, 실행 및 중지등을 운영체제에서 관리
운영체제의 구조
- 하드웨어
- 컴퓨터의 물리적인 구성요소.중앙처리장치, 주기억장치, 보조기억장치, 입력장치, 출력장치 등으로 구성되어 있으며
컴퓨터의 입력 / 연산 / 제어 / 기억 / 출력 등의 기능을 구현
- 주요 장치들: CPU, RAM, 하드디스크, 키보드, 마우스 등 - 디바이스 드라이버
- 하드웨어와 운영체제를 연결하기 위한 소프트웨어.
커널공간에서 응용프로그램과 하드웨어 간의 데이터를 주고 받는 기능을 제공 - 커널
- 항상 메모리에 올라가 있는 운영체제의 핵심부로, 하드웨어와 응용프로그램 사이에서 인터페이스를 제공하고
컴퓨터 자원들을 관리하는 역할을 함
- 다만 커널은 항상 컴퓨터 자원만 바라보고 있어서 사용자와의 상호작용은 지원하지 않음.
따라서 사용자와의 직접적 상호작용을 위해 쉘이라는 프로그램을 제공 - 시스템 콜
- 응용프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스(함수)
- 시스템 콜은 거의 모든 코드의 실행에서 발생하며, 커널에 요청하여 커널 모드에서 처리하는 방식. - 인터페이스
- 서로 다른 2개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점 또는 경계면.
즉 사용자가 기기를 쉽게 동작할 수 있도록 도와주는 시스템. - 응용 프로그램
- 우리가 흔히 사용하는 Application, App이란 용어가 바로 응용 프로그램을 뜻한다.
API와 SDK
- API (Application Programming Interface)
- 모듈화하여 만들어진, 특정 기능을 제어/제공하는 인터페이스. 우리가 사용하는 대부분의 애플리케이션은 API에 의존하고 있다. - 유형별 API
1. pricate API: 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행하기 때문에 제 3자에게 노출되지 않는다.
2. public API: 모두에게 공개되고 누구나 제한 없이 API를 사용할 수 있다.
3. partner API: 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이고 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.
- SDK (Software Development Kit)
- 어떤 소프트웨어를 만들기 위한 도구 모음. 그 도구엔 API도 포함되어 있다.
- ex) Android SDK, JDK, iOS SDK, .NET Framework SDK .... - API와 SDK의 차이점
API | SDK | |
목적 | 소프트웨어 연결 및 통합 | 다양한 개발 도구 포함 |
형질 | 가볍고 빠르면 전문화되어있음 | 더 견고함, 많은 유틸리티 포함 |
사용 사례 | 애플리케이션에 특정 기능을 추가하는데 사용 | 새로운 어플리케이션을 생성하거나 하나의 패키지로 많은 기능을 추가하는데 사용됨 |
SDK는 키트를 얻는 것과 같다. IKEA 가구처럼 부품과 사용설명서까지 포함된 키트를 의미한다.
API는 어떤 가구를 만들기 위한 부품하나하나를 의미한다. 각 부품은 다른 브랜드의 것일 수 있고, 만들 수 있는 가구는 무한하다.
API는 SDK의 일부가 될 수 있다는 점에서 SDK가 API보다 더 큰 개념이라고 할 수 있다.
'CS > 운영체제' 카테고리의 다른 글
PCB와 컨텍스트 스위칭(Context Switching) (0) | 2022.08.10 |
---|---|
프로세스와 스레드 (0) | 2022.08.10 |
컴퓨터 성능 향상 기술 (0) | 2022.08.08 |
커널의 구성 (0) | 2022.08.03 |