λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Category135

8 CPU Scheduling CPU μŠ€μΌ€μ€„λ§μ€ 운영 μ²΄μ œμ—μ„œ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό κ³΅μœ ν•˜μ—¬ 싀행될 λ•Œ, μ–΄λ–€ μˆœμ„œλ‘œ CPUλ₯Ό 할당할지 κ²°μ •ν•˜λŠ” λ°©λ²•μ΄λ‚˜ 정책을 μ˜λ―Έν•©λ‹ˆλ‹€. μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— 싀행될 수 μžˆλŠ” ν™˜κ²½μ—μ„œ CPU μŠ€μΌ€μ€„λŸ¬λŠ” ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ κ²½μŸμ„ μ‘°μ ˆν•˜κ³  효율적으둜 CPUλ₯Ό ν™œμš©ν•˜κΈ° μœ„ν•œ 일련의 κ·œμΉ™κ³Ό μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•©λ‹ˆλ‹€. CPU μŠ€μΌ€μ€„λ§μ˜ λͺ©ν‘œ 곡평성(Fairness): λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ—κ²Œ κ³΅ν‰ν•œ μ‹€ν–‰ 기회λ₯Ό μ œκ³΅ν•˜μ—¬, μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€λ„ μ§€λ‚˜μΉ˜κ²Œ μ†Œν™€νžˆ 받지 μ•Šλ„λ‘ ν•©λ‹ˆλ‹€. μ²˜λ¦¬λŸ‰(Maximum Throughput): λ‹¨μœ„ μ‹œκ°„λ‹Ή μ΅œλŒ€ν•œ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜μ—¬ μ‹œμŠ€ν…œμ˜ μ²˜λ¦¬λŸ‰μ„ κ·ΉλŒ€ν™”ν•©λ‹ˆλ‹€. λŒ€κΈ° μ‹œκ°„ μ΅œμ†Œν™”(Minimizing Waiting Time): ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό κΈ°λ‹€λ¦¬λŠ” μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜μ—¬ 응닡 μ‹œκ°„μ„ .. 2023. 12. 30.
11 RAM RAM은 "Random Access Memory"의 μ•½μžλ‘œ, 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©λ˜λŠ” μ£Ό κΈ°μ–΅μž₯μΉ˜μž…λ‹ˆλ‹€. μ—¬λŸ¬ λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λ©°, 컴퓨터가 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨ 및 데이터λ₯Ό μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜λŠ” 데 주둜 ν™œμš©λ©λ‹ˆλ‹€. RAMκ³Ό Memoryκ°€ 같은 λ‹¨μ–΄λ‘œ 많이 μ“°μ΄λŠ”λ° 보톡 Memoryν•˜λ©΄ RAMμ΄λΌλŠ” μš©μ–΄λ₯Ό μ§€μΉ­ν•œλ‹€κ³  보면 λ©λ‹ˆλ‹€. λ‹€λ§Œ, 깊게 λ“€μ–΄κ°€λ©΄ λ‹€μ–‘ν•œ Memory μ’…λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ μ£Όμš” κΈ°μ–΅ μž₯치인 ν•˜λ“œ λ””μŠ€ν¬ λ“œλΌμ΄λΈŒ (HDD)λ‚˜ μ†”λ¦¬λ“œ μŠ€ν…Œμ΄νŠΈ λ“œλΌμ΄λΈŒ (SSD)μ™€λŠ” 달리, RAM은 νœ˜λ°œμ„± κΈ°μ–΅ μž₯치둜 전원이 꺼지면 μ €μž₯된 데이터가 μ†μ‹€λ©λ‹ˆλ‹€. μ—­ν• κ³Ό κΈ°λŠ₯ μž„μ‹œ μ €μž₯μ†Œ: RAM은 ν˜„μž¬ μ‹€ν–‰ 쀑인 운영 체제, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν•„μš”ν•œ 데이터λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€. 데이터 κ΅ν™˜: CPUκ°€ 더.. 2023. 12. 30.
10 λͺ…λ Ήμ–΄ 집합 ꡬ쑰 (Feat. CISC & RISC) 컴퓨터 μ•„ν‚€ν…μ²˜λŠ” ν”„λ‘œμ„Έμ„œκ°€ μ΄ν•΄ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” λͺ…λ Ήμ–΄ 집합을 μ •μ˜ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ μ•„ν‚€ν…μ²˜κ°€ μ‘΄μž¬ν•˜μ§€λ§Œ, μ—¬κΈ°μ„œλŠ” 주둜 μ‚¬μš©λ˜λŠ” 두 가지 μ•„ν‚€ν…μ²˜μ— λŒ€ν•΄ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€. 인텔 CPU (x86 μ•„ν‚€ν…μ²˜) 인텔과 AMD의 x86 μ•„ν‚€ν…μ²˜λŠ” 주둜 개인 컴퓨터 및 μ„œλ²„μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. x86 λͺ…λ Ήμ–΄ 집합은 인텔과 AMD ν”„λ‘œμ„Έμ„œκ°€ μ΄ν•΄ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” λͺ…λ Ήμ–΄λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. λŒ€ν‘œμ μΈ x86 λͺ…λ Ήμ–΄ μ„ΈνŠΈλ‘œλŠ” IA-32(32λΉ„νŠΈ)와 x86-64(64λΉ„νŠΈ)κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ§Žμ€ μ†Œν”„νŠΈμ›¨μ–΄ 및 운영 μ²΄μ œκ°€ x86 μ•„ν‚€ν…μ²˜λ₯Ό μ§€μ›ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. x86 μ•„ν‚€ν…μ²˜ μ½”λ“œ ARM μ•„ν‚€ν…μ²˜ ARM μ•„ν‚€ν…μ²˜λŠ” 주둜 λͺ¨λ°”일 κΈ°κΈ° 및 μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. λ˜ν•œ μ΅œκ·Όμ—λŠ” 일뢀 λ…ΈνŠΈλΆ 및 μ„œλ²„μ—μ„œλ„ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. AR.. 2023. 12. 29.
3 Casting Javaμ—μ„œ Casting은 λ³€μˆ˜λ‚˜ ν‘œν˜„μ‹μ˜ 데이터 μœ ν˜•μ„ λ‹€λ₯Έ 데이터 μœ ν˜•μœΌλ‘œ λ³€ν™˜ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ΄λŠ” μ„œλ‘œ λ‹€λ₯Έ μœ ν˜• 간에 ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. Javaμ—μ„œλŠ” 두 가지 μœ ν˜•μ˜ μΊμŠ€νŒ…μ΄ μžˆμŠ΅λ‹ˆλ‹€. 1) Widening Casting (automatically) - converting a smaller type to a larger type siz byte - short - char - int - long - float - double 2) Narrowing Casting (manually) - converting a larger type to a smaller size type double - float - long - int - char - short - byte Casti.. 2023. 12. 29.
2 Variable, Constant and Primitive Type in Java (Feat. Literal) λ³€μˆ˜ (Variables) λ³€μˆ˜λŠ” 데이터λ₯Ό μ €μž₯ν•˜κ³  μ°Έμ‘°ν•˜κΈ° μœ„ν•œ λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ΄λ¦„μž…λ‹ˆλ‹€. λ³€μˆ˜λŠ” μ„ μ–Έλœ 데이터 νƒ€μž…μ— 맞게 값을 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 값은 μ–Έμ œλ“ μ§€ 변경될 수 μžˆμŠ΅λ‹ˆλ‹€. μƒμˆ˜ (Constants) μƒμˆ˜λŠ” ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ λ³€ν•˜μ§€ μ•ŠλŠ” κ°’μœΌλ‘œ, ν•œ 번 ν• λ‹Ήλ˜λ©΄ λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μžλ°”μ—μ„œλŠ” final ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμˆ˜λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€. μƒμˆ˜λŠ” 보톡 λŒ€λ¬Έμžλ‘œ λͺ…λͺ…λ˜λ©°, μ—¬λŸ¬ λ‹¨μ–΄μ˜ 쑰합일 경우 μ–Έλ”μŠ€μ½”μ–΄ _ 둜 μ—°κ²°λ˜μ–΄ μ§‘λ‹ˆλ‹€. κΈ°λ³Έ 데이터 νƒ€μž… (Primitive Data Types) μžλ°”μ—μ„œλŠ” κΈ°λ³Έ 데이터 νƒ€μž…μœΌλ‘œ λ‹€μ–‘ν•œ μ’…λ₯˜κ°€ μ œκ³΅λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°λ³Έ 데이터 νƒ€μž…μ€ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 μ‚¬μš©ν•˜λ©°, λ‹€μ–‘ν•œ 데이터 μœ ν˜•μ„ μ§€μ›ν•©λ‹ˆλ‹€. 1) μ •μˆ˜ν˜• (Integer Types) byte: .. 2023. 12. 29.
Charlie Munger Commencement Address - USC Having a good profession, such as a lawyer, does not necessarily make a person more ethical. However, they earn not only money and honor but also respect and meaningful trust. Gaining respect and trust is a great joy in life. Leading a life filled with greed may bring wealth and fame to villains, but people rejoice at their death. One should not live such a life. There is nothing as important as.. 2023. 12. 28.
1 JVM, JRE, JDK μžλ°” 가상 λ¨Έμ‹ (Java Virtual Machine, JVM) μžλ°” 가상 λ¨Έμ‹ (Java Virtual Machine, JVM)은 μžλ°” μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” 가상 컴퓨터 ν™˜κ²½μ„ λ§ν•©λ‹ˆλ‹€. JVM은 운영 μ²΄μ œμ™€λŠ” 독립적이며, μžλ°” ν”„λ‘œκ·Έλž¨μ„ μžλ°” λ°”μ΄νŠΈ μ½”λ“œλ‘œ λ³€ν™˜ν•˜μ—¬ μ‹€ν–‰ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ λ°”μ΄νŠΈ μ½”λ“œλŠ” μžλ°” μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ μƒμ„±λ˜λ©°, μ΄λŠ” 쀑간 λ‹¨κ³„μ˜ μ–Έμ–΄λ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. JVM은 λ‹€μ–‘ν•œ 운영 μ²΄μ œμ—μ„œ λ™μΌν•œ μžλ°” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. μ΄λŠ” μžλ°”μ˜ 큰 강점 쀑 ν•˜λ‚˜μ΄λ©°, "Write Once, Run Anywhere"λΌλŠ” κ°œλ…μ„ μ§€μ›ν•©λ‹ˆλ‹€. JVM은 μžλ°” ν”„λ‘œκ·Έλž¨μ΄ ν•˜λ“œμ›¨μ–΄ 및 운영 체제의 ꡬ체적인 μ„ΈλΆ€ 사항에 μ’…μ†λ˜μ§€ μ•Šλ„λ‘ ν•΄μ€λ‹ˆλ‹€. JVM의 μ£Όμš” ꡬ성 μš”μ†Œ.. 2023. 12. 28.
7 Thread in Software μ†Œν”„νŠΈμ›¨μ–΄ μΈ‘λ©΄μ—μ„œμ˜ μŠ€λ ˆλ“œ(Thread)λŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” 독립적인 μ‹€ν–‰ 흐름을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 각각의 μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ 곡유된 μžμ›μ— λŒ€ν•œ 독립적인 μ½”λ“œ μ‹€ν–‰ 흐름을 가지며, 이듀은 μ„œλ‘œ λ‹€λ₯Έ μŠ€λ ˆλ“œ 간에 데이터 및 μžμ›μ„ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ©€ν‹°μŠ€λ ˆλ”©(Multithreading)이라고 λΆˆλ¦¬λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μ˜ ν•΅μ‹¬μž…λ‹ˆλ‹€. μŠ€λ ˆλ“œμ˜ μ£Όμš” κ΅¬μ„±μš”μ†Œ ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„° (Program Counter) 각 μŠ€λ ˆλ“œλŠ” μ‹€ν–‰ 쀑인 μ½”λ“œμ˜ μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹€μŒμ— μ‹€ν–‰ν•  λͺ…λ Ήμ–΄μ˜ μ£Όμ†Œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€. λ ˆμ§€μŠ€ν„° (Registers) μŠ€λ ˆλ“œλŠ” λ ˆμ§€μŠ€ν„° μ„ΈνŠΈλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. λ ˆμ§€μŠ€ν„°λŠ” 데이터λ₯Ό μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜κ³  μ²˜λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ˜λ©°, μŠ€λ ˆλ“œ κ°„ μ „ν™˜ μ‹œ ν˜„.. 2023. 12. 28.
6 ν”„λ‘œμ„ΈμŠ€ μƒνƒœμ™€ 계측 ꡬ쑰 ν”„λ‘œμ„ΈμŠ€ μƒνƒœλŠ” 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μž‘μ—…μ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 일반적으둜 λ‹€μŒκ³Ό 같은 μ—¬λŸ¬ 가지 μƒνƒœλ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. 생성(New): ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜κ³  아직 μŠ€μΌ€μ€„λ§λ˜μ§€ μ•Šμ€ μƒνƒœμž…λ‹ˆλ‹€. μ€€λΉ„(Ready): ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό ν• λ‹Ήλ°›κΈ°λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœμž…λ‹ˆλ‹€. 이 μƒνƒœμ—μ„œλŠ” λͺ¨λ“  ν•„μš”ν•œ μžμ›μ„ ν• λ‹Ήλ°›μ•„ 싀행을 μ‹œμž‘ν•  수 μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. μ‹€ν–‰(Running): CPUλ₯Ό ν• λ‹Ήλ°›μ•„ μ‹€μ œλ‘œ μ½”λ“œκ°€ μ‹€ν–‰λ˜κ³  μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€κ°€ 이 μƒνƒœμ— μžˆλ‹€λŠ” 것은 ν˜„μž¬ CPUλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. λŒ€κΈ°(Waiting λ˜λŠ” Blocked): ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λ–€ μ΄λ²€νŠΈκ°€ λ°œμƒν•˜κΈ°λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœμž…λ‹ˆλ‹€. μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μ‹œ μ€€λΉ„ μƒνƒœλ‘œ μ „ν™˜λ©λ‹ˆλ‹€. μ’…λ£Œ(Terminate.. 2023. 12. 28.