일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로세스
- 데이터베이스
- 스케줄러
- 파싱테이블
- 정보검색
- C언어
- 클래스
- 벡터
- 오픈소스웹소프트웨어
- DB
- 랩실일기
- 컴파일러
- 언어모델
- NLP
- 소프트웨어공학
- 가상메모리
- 운영체제
- 836
- OS
- 객체지향설계
- Linear Algebra
- css
- 데이터분석
- 애자일
- Agile
- 자연어처리
- 파싱
- React
- 컴파일
- 웹소프트웨어
Archives
- Today
- Total
observe_db
[OS] 2. 하드웨어와 소프트웨어(3) 본문
소프트웨어
- 디바이스 드라이버(Device driver)
- 특정 하드웨어/장치를 제어하기 위한 커널의 일부로 동작하는 프로그램
- 입출력 장치별로 각각의 드라이버가 커널에 통합되어 실행
- 메모리에 상주
- 장치를 파일처럼 취급 가능
- (사진 추가 가능)
- API(Application Programming Interface)
- 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 라이브러리 형태로 제공
- 시스템콜 함수는 운영체제 기능을 사용하게 하는 API(API 함수 내부에서 시스템콜 함수 가능)
- 컴파일러
- 고급 언어를 기계어로 변환
- 컴파일 과정
- 렉서(Lexer): 코드 내의 문자를 tokenize
- 파서(parse): 문법적으로 맞는 토큰의 집단화
- 중간코드 생성기(intermediate code generator): 문장을 단순한 명령어로 변환
- 최적화기(optimizer): 코드 실행 및 메모리 활용에 대한 개선
- 코드 생성기(code generator): 기계어 코드로 변환
- 링커(Linker)
- 별도로 컴파일 된 여러 코드를 결합하여 하나의 실행코드 생성
- 상대 주소(relative address)를 사용하여 결합
- 코드 간의 외부참조(external reference)를 확인
- 링킹 시기
- 컴파일시(compile time)/적재시(loading time)/실행시(runtime)
- 로더(loader)
- 상대주소를 물리 주소(절대주소)로 변환
- 명령어와 데이터를 메모리에 적재
- 펌웨어(Firmware)
- 특정 하드웨어에 대한 하위 수준 제어를 하는 소프트웨어.
- BIOS, 임베디드 시스템, 가전제품 등
- 비휘발 메모리에 저장한다.
'학교 공부 > 운영체제(OS)(3-1)' 카테고리의 다른 글
[OS] 3. 프로세스(Process)(2) (0) | 2023.04.05 |
---|---|
[OS] 3. 프로세스(Process)(1) (0) | 2023.03.29 |
[OS] 2. 하드웨어 및 소프트웨어(2) (0) | 2023.03.20 |
[OS] 2. 하드웨어 및 소프트웨어(1) (0) | 2023.03.15 |
[OS] 1. 운영체제 소개(2) (0) | 2023.03.14 |
Comments