Computer Science/Basics

πŸ’ Operating Systems Fundamentals 1

metamong 2024. 10. 30.

intro

πŸš€ 운영체제(OS)λž€, ν•˜λ“œμ›¨μ–΄ μœ„μ— μ„€μΉ˜λ˜μ–΄ ν•˜λ“œμ›¨μ–΄(HW) 계측과 λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄(SW) 계측을 μ—°κ²°ν•˜λŠ” SW 계측.

 

πŸš€

β‘  컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ› 관리

β‘‘ μ‚¬μš©μžκ°€ 컴퓨터λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” ν™˜κ²½ 제곡

: CPU, λ©”λͺ¨λ¦¬ 같은 컴퓨터 μžμ›μ€ μ œν•œμ μ΄λ―€λ‘œ μžμ› κ΄€λ¦¬λŠ” 맀우 μ€‘μš”! 이λ₯Ό OSκ°€ λ‹΄λ‹Ή

β‘’ μ‚¬μš©μž 컴퓨터 κ°„ μΈν„°νŽ˜μ΄μŠ€ 제곡 → μ‚¬μš©μžκ°€ 컴퓨터λ₯Ό νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” ν™˜κ²½ 제곡

ex) λŒ€ν‘œμ μΈ OS: Windows, macOS, Linux, Unix

 

πŸš€ 4가지 λͺ©μ 

β‘  처리λŠ₯λ ₯(throughput) ν–₯상: μžμ› 관리λ₯Ό 톡해 일정 μ‹œκ°„ 내에 μ‹œμŠ€ν…œ μ²˜λ¦¬λŸ‰ ν–₯상

β‘‘ λ°˜ν™˜μ‹œκ°„(turnaround time) 단좕: μ‚¬μš©μžκ°€ μ‹œμŠ€ν…œμ— μš”μ²­ν•œ μž‘μ—… μ™„λ£Œ μ‹œκ°„ 단좕

β‘’ μ‚¬μš© κ°€λŠ₯도(availability) ν–₯상: μ‹œμŠ€ν…œ μžμ›μ„ μ–Όλ§ˆλ‚˜ 빨리 μ œκ³΅ν•  수 μžˆλŠ”μ§€. OSλŠ” μ‚¬μš©μžκ°€ 컴퓨터 μžμ› μ‚¬μš© μ‹œ μ¦‰μ‹œ μ‚¬μš©ν•˜κ²Œ ν•΄ 쀌

β‘£ 신뒰도(reliability) ν–₯상: μž…λ ₯ 값에 λŒ€ν•œ μ •ν™•ν•œ 결괏값 얻을 수 μžˆλ„λ‘ 신뒰도 ν–₯상

 

∴ HW와 SW μ΄μ–΄μ£ΌλŠ” κ³„μΈ΅μœΌλ‘œ ν•œμ •λœ μžμ› μ•ˆμ—μ„œ μ •ν™•ν•˜κ³  λΉ λ₯΄κ²Œ 주어진 문제 ν•΄κ²°ν•΄μ€Œ. 

CPU

πŸš€ CPUλŠ” μ»΄ν“¨ν„°μ˜ λ‡Œ 역할을 ν•˜λ©°, ν”„λ‘œμ„Έμ„œλΌκ³  λΆ€λ₯΄κΈ°λ„ ν•œλ‹€. μ»΄ν“¨ν„°μ—μ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ 연산을 μ²˜λ¦¬ν•˜κ³  μˆ˜ν–‰.

πŸš€ λ©”λͺ¨λ¦¬λŠ” 일반적으둜 RAM을 λœ»ν•˜λŠ” λ©”λͺ¨λ¦¬(μ£Ό κΈ°μ–΅μž₯치;νœ˜λ°œμ„±) + SSD/HDD인 보쑰 κΈ°μ–΅μž₯치(λΉ„νœ˜λ°œμ„±)둜 λ‚˜λ‰œλ‹€.

πŸš€ λ©”λͺ¨λ¦¬λŠ” λ ˆμ§€μŠ€ν„° + μΊμ‹œ λ©”λͺ¨λ¦¬(2개 λͺ¨λ‘ CPU λ‚΄λΆ€) + RAM + ν•˜λ“œ λ””μŠ€ν¬(SDD/HDD) μ΄λ ‡κ²Œ 크게 4개둜 λ˜μ–΄ μžˆλ‹€.

β‘  λ ˆμ§€μŠ€ν„°: CPUκ°€ μ‚¬μš©μž μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 데 ν•„μš”ν•œ 데이터λ₯Ό μž„μ‹œλ‘œ μ €μž₯ν•˜λŠ” κΈ°μ–΅μž₯치. CPU 내뢀에 μ‘΄μž¬ν•˜λ©° μ ‘κ·Ό 속도 λΉ λ₯΄λ‹€

β‘‘ μΊμ‹œ λ©”λͺ¨λ¦¬: CPU와 RAM μ‚¬μ΄μ˜ 속도 차이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ κΈ°μ–΅μž₯치. CPU 내뢀에 μœ„μΉ˜. μ ‘κ·Ό 속도가 λ ˆμ§€μŠ€ν„° λ‹€μŒμœΌλ‘œ λΉ λ₯΄λ‹€.

β‘’ RAM: μ»΄ν“¨ν„°μ—μ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  λ–„ ν•„μš”ν•œ 정보 μ €μž₯. CPUμ—μ„œ μ ‘κ·Ό 속도가 ν•˜λ“œ λ””μŠ€ν¬λ³΄λ‹€ λΉ λ₯΄κ³  νœ˜λ°œμ„± κΈ°μ–΅μž₯치. 

β‘£ ν•˜λ“œλ””μŠ€ν¬: μ‚¬μš©μžκ°€ ν•„μš”ν•œ 데이터와 ν”„λ‘œκ·Έλž¨ μ €μž₯. λΉ„νœ˜λ°œμ„±.

Kernel in OS

πŸš€ 컀널은 OS의 핡심 μš”μ†Œλ‘œ, μžμ›(RAM, CPU)κ³Ό μ‚¬μš©μžκ°„μ˜ intermediary μ€‘κ°œμž 역할을 ν•˜μ—¬ μ‚¬μš©μžκ°€ 직접 μžμ›μ— μ ‘κ·Όν•  수 있게 ν•΄μ£ΌλŠ” μ€‘μš”ν•œ μ—­ν•  μˆ˜ν–‰. CPU μŠ€μΌ€μ€„λ§, λ©”λͺ¨λ¦¬/μž…μΆœλ ₯ 관리, 파일 μ‹œμŠ€ν…œ 관리 μž‘μ—… λ“±λ“± 진행.

 

πŸš€

(1) kernel mode: μ»€λ„μ—μ„œ κ΄€λ¦¬ν•˜λŠ” μ€‘μš” μžμ›μ— μ‚¬μš©μžκ°€ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λŠ” mode.

(2) user mode: 컀널 λͺ¨λ“œμ˜ μžμ›μ— μ‚¬μš©μžκ°€ μ ‘κ·Ό κ°€λŠ₯.

 

πŸš€ μ‚¬μš©μž λͺ¨λ“œμ—μ„œ μ‹€ν–‰λœ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ— μ ‘κ·Όν•˜λ €λ©΄ system call을 ν˜ΈμΆœν•΄ 컀널에 μš”μ²­ ν•„μˆ˜. system callμ΄λž€ μ‚¬μš©μž λͺ¨λ“œμ—μ„œ 컀널 λͺ¨λ“œμ— μ ‘κ·Όν•΄ ν•„μš”ν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•  수 있게 ν•˜λŠ” μ‹œμŠ€ν…œ ν•¨μˆ˜. μ‹œμŠ€ν…œ 콜둜 받은 μš”μ²­μ„ μ²˜λ¦¬ν•œ ν›„ λ‹€μ‹œ μ‹œμŠ€ν…œ 콜둜 결괏값 λ°˜ν™˜. λŒ€ν‘œμ μΈ μ‹œμŠ€ν…œ 콜의 예둜 ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λŠ” fork(), λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ μˆ˜ν–‰μ„ κΈ°λ‹€λ¦¬λŠ” wait()

'Computer Science > Basics' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

πŸ’Operating Systems Fundamentals 2 - Process 1/3  (0) 2024.11.01
jupyter notebook markdown *μˆ˜μ‹œ μ—…λ°μ΄νŠΈ  (0) 2023.02.07
Data Handling  (0) 2022.07.15
feature scaling  (0) 2022.06.22
Data Analysis with Python (2/2) (from Coursera)  (0) 2022.04.24

λŒ“κΈ€