반응형
Operation System?
1. 사용자에게 프로그램을 실행할 수 있는 기반을 만들어주고,
2. 하드웨어를 효율적으로 사용할 수 있게 다양한 기능을 제공하는 소프트웨어이다.
그의 역할은 도덕책?
○ 제어 역할 : 다른 프로그램을 작업할 수 있는 환경 제공
○ 자원 할당 : 컴퓨터 시스템의 자원을 효율적으로 분배
○ IO <-> program : 시스템에 대한 오류 발생을 방지
그럼 기능은 무엇이냐?
1. 자원 관리 -> Memory, Process, File, Data ... etc
2. 시스템 관리 -> 권한부여, Communication, command interpreter
유형에는 어떤게 있나요?
● 일괄처리 시스템(Batch processing system)
- 일정기간 동안 데이터를 모두 모아서 한꺼번에 처리하는 방식
ex) 급여 계산, 연말 정산
● 다중 프로그래밍 시스템(Multi programming system)
- 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리
ex) 멀티 쓰레드 방식
● 시분할 시스템(Time sharing system)
- 여러 사용자에게 짧은 간격으로 프로세서를 번갈아가면서 할당하는 것
- 각 사용자에게 독립된 컴퓨터를 사용하는 느낌
ex) RR(Round Robin) 방식
● 다중 처리 시스템(Multiprocessing system)
- 단일 컴퓨터에서 둘 이상의 프로세스를 사용해 동시에 처리하는 것 -> 그만큼 안정성이 보장됨
● 실시간 처리 시스템(Real time processing)
- 데이터를 시간적인 제약을 두고 처리하는 시스템
- 다만 시간제약을 무조건적으로 지켜야 함
● 분산 처리 시스템(Distributed processing system)
- 여러 개의 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
Operation System 추상화(Abstraction)
Physical Resource들을 사용하기 쉽게 만들기 위한 것.
이러한 추상화된 기능들은 System Call로 정의하여 사용자가 쉽게 사용 가능
ex) Virtual Memory, Multitasking
System Call
운영체제에는 1. User mode 2. Kernel mode 가 있다.
일반적인 User mode에서 System call이 호출 되면 Kernel mode로 전환되고, 모든 작업이 끝나면 User mode로 되돌아온다.
우리가 알고 있는 System call은 다음과 같다.
● 프로세스 제어 : fork(), exit(), wait()
● 파일 관리 : open(), read(), write(), close()
● 장치 관리 : ioctl(), read(), write()
● 정보 유지 : getpid(), alarm(), sleep()
● 보안 : chmod(), umask(), chown()
Virtual Memory 아주 잠깐 소개
서로 다른 프로그램을 동시에 실행한 후 id를 출력해보면 주소가 같을 때가 있다.
왜냐하면, 가상 메모리를 사용했기 때문이다.
why 가상 메모리를 사용해요?
1. 주기억장치의 효율적 관리 : 사용하는 것만 쓰자~!
2. 메모리 관리의 단순화 : 통일된 주소 공간 배정
3. 메모리 용량 및 안정성 보장 : 프로세스끼리 서로 메모리 침범 x
Concurrency(동시성 문제)
같은 프로그램 혹은 시스템에서 동시에 뭔가 하려고 했을 때 생기는 문제
ex) 2개의 스레드가 동시에 같은 자원을 접근 = Race condition
Persistence(지속성)
데이터를 DRAM과 같은 휘발성으로 저장하는 것이 아닌
저장소(SSD)에 데이터를 작성해 영구적으로 유지하는 것
정책과 기법
policy : 다음에 프로세스 수행을 어떻게 할 것인가? 무엇을 수행할 것인가?
mechanism : queue와 같은 어떻게 수행할 것인가?
+++++++++++++++++++
링커&로더 관련 추가
+++++++++++++++++++
링커와 로더가 뭐야?
→ Linker : 작성한 소스코드(프로그램)을 라이브러리 및 다른 프로그램 등을 연결하여 실행가능한 로드 모듈을 만드는 시스템 소프트웨어
→ Loader : 컴퓨터 내부로 정보를 들여오거나, 로드 모듈을 보조기억장치에서 주기억장치로 적재하는 시스템 소프트웨어
- Allocation -> Linking -> Relocation -> Loading 순서로 진행된다.
참고 : 정보처리기사 필기
반응형
'Developer > OS' 카테고리의 다른 글
7. Virtual Memory - 가상메모리 (1) | 2018.12.20 |
---|---|
6. Memory Fragmentation - 메모리 단편화 (0) | 2018.12.18 |
5. Monitor & Deadlock - 모니터, 데드락 (0) | 2018.12.17 |
4. Critical Area - 임계구역이란? (0) | 2018.12.13 |
2. Process - 프로세스 (0) | 2018.12.11 |