Computer Science/기타

[운영체제] process vs thread

_cactus 2021. 3. 6. 12:07
λ°˜μ‘ν˜•

ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ process and thread

 

  • 운영체제 μœ ν˜•

  1. 닀쀑 ν”„λ‘œκ·Έλž˜λ° μ‹œμŠ€ν…œ (multi programming)

                        cpuκ°€ μˆ˜ν–‰ν•  μž‘μ—…μ„ 항상 가지도둝 ν•˜μ—¬ cpu 이용λ₯  증진

                        μš΄μ˜μ²΄μ œλŠ” λ©”λͺ¨λ¦¬μ— μžˆλŠ” μž‘μ—… μ€‘μ—μ„œ ν•˜λ‚˜λ₯Ό νƒν•˜μ—¬ μ‹€ν–‰ν•œλ‹€. multi programming이 μ•„λ‹Œ μ‹œμŠ€ν…œμ—μ„œλŠ” 이 μž‘μ—…μ€ ν‚€λ³΄λ“œμ—μ„œ λͺ…령을 μž…λ ₯ν•˜κ±°λ‚˜, μž…μΆœλ ₯ μ‘°μž‘μ΄ λλ‚˜λŠ” 것과 같은 어떀일을 κΈ°λ‹€λ €μ•Όν•  ν•„μš”κ°€ μžˆμ„ 수 μžˆλŠ”λ° μ΄λ•Œ cpuκ°€ μœ νœ΄μƒνƒœμ— λ†“μ΄κ²Œ λœλ‹€. ν•˜μ§€λ§Œ, multi programming systemμ—μ„œλŠ” μš΄μ˜μ²΄μ œκ°€ κ°„λ‹¨νžˆ λ‹€λ₯Έ μž‘μ—…μœΌλ‘œ μ „ν™˜ν•˜μ—¬ 그것을 μˆ˜ν–‰ν•˜λ„λ‘ ν•œλ‹€. μ•žμ˜ μž‘μ—…μ΄ λλ‚˜λ©΄ 이 μž‘μ—…μ€ cpuλ₯Ό λ‹€μ‹œ μ°¨μ§€ν•˜κ²Œ λœλ‹€. λ”°λΌμ„œ μˆ˜ν–‰λ  μž‘μ—…μ΄ κΈ°μ–΅μž₯μΉ˜μ— μ μž¬λ˜μ–΄ 있으면 cpuλŠ” 쉬지 μ•ŠλŠ”λ‹€. 

μ—¬λŸ¬ 개의 μž‘μ—…μ„ μ€€λΉ„ μƒνƒœλ‘œ 두기 μœ„ν•΄μ„œλŠ” 그것듀을 λ©”λͺ¨λ¦¬μ— 보관해야 ν•˜κ³  일정 ν˜•νƒœμ˜ λ©”λͺ¨λ¦¬ 관리λ₯Ό ν•„μš”λ‘œ ν•œλ‹€. + ν”„λ‘œμ„ΈμŠ€ μŠ€μΌ€μ₯΄λ§    

 

                  2. time sharing system

                  3. distributed processing system

                  4. multi process system        

                      μ—¬λŸ¬κ°œμ˜ cpu μ‚¬μš©         

 

  • 운영체제 ꡬ성:

           μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ ν™˜κ²½κ³Ό ν•„μš”ν•œ μžμ›μ„ μ œκ³΅ν•˜κ³  관리해주며 λ…Όλ¦¬μ μœΌλ‘œ μž‘μ€ λͺ¨λ“ˆλ“€λ‘œ κ΅¬μ„±λ˜μ–΄ ν”„λ‘œκ·Έλž¨λ“€μ„ μœ„ν•œ interface 역할을 ν•œλ‹€. ν˜„μž¬ μš΄μ˜μ²΄μ œλŠ” λ©”λͺ¨λ¦¬, ν”„λ‘œμ„ΈμŠ€, μž₯치, 파일 λ“±κ³Ό 같은 μ‹œμŠ€ν…œ ꡬ성 μš”μ†Œλ“€μ„ 제곡, 이것듀을 μžμ›μ΄λΌκ³  함.

 

  • process의 μ •μ˜

           - 싀행쀑인 ν”„λ‘œκ·Έλž¨

           - λ“±μž₯λ°°κ²½: μ΄ˆκΈ°μ—λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨λ§Œ μ»΄ν“¨ν„°μ—μ„œ μˆ˜ν–‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— ν•œ 개의 ν”„λ‘œκ·Έλž¨μ΄ μ»΄ν“¨ν„°μ˜ λͺ¨λ“  μžμ›μ„ λ…μ°¨μ§€ν–ˆμ§€λ§Œ multi programming ν™˜κ²½μ—μ„œλŠ” μ—¬λŸ¬ 개의 ν”„λ‘œκ·Έλž¨μ΄ main memory에 μ μž¬λ˜μ–΄ λ³‘ν–‰ν•΄μ„œ μˆ˜ν–‰λœλ‹€. 

           - ν•˜λ‚˜μ˜ processλŠ” μžμ‹ μ˜ 업무λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•˜μ—¬ cpu 점유(cpu ν• λ‹Ήμ‹œκ°„), memory, file, μž…μΆœλ ₯ μž₯μΉ˜μ™€ 같은 μžμ›λ“€μ„ ν•„μš”λ‘œ ν•˜κΈ° λ•Œλ¬Έμ—, processκ°€ μƒμ„±λ˜κ±°λ‚˜ 싀행될 λ•Œ μ΄λŸ¬ν•œ μžμ›λ“€μ΄ μ œκ³΅λ˜μ–΄μ•Ό ν•œλ‹€. 또 processλŠ” ν”„λ‘œκ·Έλž¨ code + program counter(PC) + register 의 λ‚΄μš©λ„ ν¬ν•¨ν•œλ‹€.

           - 예) λ§Œμ•½ 2개의 processκ°€ 같은 ν”„λ‘œκ·Έλž¨μΈ λ¬Έμ„œ νŽΈμ§‘κΈ°λ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ 이듀은 λ³„κ°œμ˜ process이닀. 비둝 μ½”λ“œ 뢀뢄은 κ°™μ§€λ§Œ 각기 λ³„λ„μ˜ stack에 λ‹€λ₯Έ 데이터λ₯Ό 가지고 있기 λ•Œλ¬Έ!

 

  • process μ’…λ₯˜

  1. 운영체제 process :  processλ“€μ˜ μ‹€ν–‰μˆœμ„œλ₯Ό μ œμ–΄ν•˜κ±°λ‚˜ μ‚¬μš©ν•œ processκ°€ λ‹€λ₯Έ μ‚¬μš©μž λ˜λŠ” 운영체제 μ˜μ—­μ„ μΉ¨λ²”ν•˜μ§€ λͺ»ν•˜λ„둝 예방 λ“± μ€‘μš”ν•œ μ‹œμŠ€ν…œ κ°μ‹œ κΈ°λŠ₯ λ‹΄λ‹΄.                     kernel process=system process 라고도 함

  2. μ‚¬μš©μž process : μ‚¬μš©μž μ½”λ“œλ₯Ό μˆ˜ν–‰ν•˜λŠ” process

  3. 병행 process : μ—¬λŸ¬ 개의 process듀이 λ™μ‹œμ— μˆ˜ν–‰μƒνƒœμ— μžˆμ„ λ•Œ. μ„œλ‘œ 관련이 μ—†λŠ” 독립적인 process와 λ‹€λ₯Έ process끼리 ν˜‘λ ₯ν•˜λ©΄μ„œ μˆ˜ν–‰ν•˜λŠ” ν˜‘λ™ process둜 λ‚˜λ‰¨

  4. 독립 process : ν•œ processκ°€ μ‹œμŠ€ν…œ μ•ˆμ—μ„œ λ‹€λ₯Έ processμ—κ²Œ 영ν–₯을 μ£Όκ³  받지 μ•ŠμŒ + 데이터 κ³΅μœ ν•˜μ§€ μ•ŠμŒ

  5. ν˜‘λ™ process : λ‹€λ₯Έ processμ—κ²Œ 영ν–₯을 μ£Όκ±°λ‚˜ λ°›μŒ. 주둜 μ œν•œλœ μžμ›μ„ μ„œλ‘œ κ³΅μœ ν•΄μ•Ό ν•˜λŠ” processκ°„μ˜ ν†΅μ œλœ μƒν˜Έμž‘μš©μ„ ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ— λ°œμƒ

                      => process듀이 μ„œλ‘œ ν˜‘λ™μ„ ν•„μš”λ‘œ ν•˜λŠ” 경우 -> μ„œλ‘œ 톡신을 μœ„ν•œ μˆ˜λ‹¨κ³Ό 동기화 ν•  수 μžˆλŠ” κΈ°λŠ₯이 ν•„μš”

            

            

  • process vs program

    • program: λ‹¨μˆœνžˆ λ””μŠ€ν¬μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 파일의 λ‚΄μš©μœΌλ‘œ μˆ˜λ™μ μΈ 정적 λ‹¨μœ„

    • process: λŠ₯동적인 κ°μ²΄λ‘œμ„œ program counter, registerλ“€κ³Ό 같은 ν˜„μž¬ μ‚¬μš©λ˜λŠ” μžμ›μ— λŒ€ν•œ 정보λ₯Ό 가지고 있음

                                     process μ‹€ν–‰κ³Όμ •μ—μ„œ μƒˆλ‘œμš΄ processλ₯Ό 생성할 μˆ˜λ„ 있음

 

 

 

 

 

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•