728x90

CS/운영체제 21

데드락(Deadlock)과 해결방법

데드락 (DeadLock, 교착 상태) | 👨🏻‍💻 Tech Interview (gyoogle.dev) 데드락 (DeadLock, 교착 상태) | 👨🏻‍💻 Tech Interview 데드락 (DeadLock, 교착 상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 gyoogle.dev 데드락: 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 대기 상태로 들어간..

CS/운영체제 2023.11.22

스핀락(SpinLock)

스핀락 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 스핀락 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 스핀락(spinlock)은 임계 구역(critical section)에 진입이 불가능할 때 진입이 가능할 때까지 루프를 돌면서 재시도하는 방식으로 구현된 락을 가리킨다. 스핀락이라 ko.wikipedia.org '조금만 기다리면 바로 쓸 수 있는데 굳이 Context Switching으로 부하를 줄 필요가 있나?'라는 컨셉으로 개발된 것 스핀락(spinlock)은 임계 구역(critical section)에 진입이 불가능할 때 진입이 가능할 때까지 루프를 돌면서 재시도하는 방식으로 구현된 락 스핀락이라는 이름은 락을 획득할 때까지 해당 스레드가 빙빙 돌고 있..

CS/운영체제 2023.11.22

쓰레드를 많이 만들면?

🤔 스레드를 많이 쓸수록 항상 성능이 좋아질까? (tistory.com) 🤔 스레드를 많이 쓸수록 항상 성능이 좋아질까? 스레드를 많이 쓰면 쓸수록 성능이 높아지는가 프로세스와 스레드를 처음 학습할때, 스레드는 프로세스 내에 존재하는 실행 단위이며, 이 스레드가 여러개인 덕분에 우리가 음악을 들으며 웹서 inpa.tistory.com 스레드가 여러개인 덕분에 음악을 들으며 웹서핑을 하거나 일을 다운받는 '동시작업'이 가능함 그렇다고 멀티스레드가 무조건 성능이 좋은 것은 아님. 왜 멀티스레드가 항상 성능이 좋지 않은지 멀티스레드는 자원을 공유하기 때문에 프로세스 생성에 비해 장점: 적은 메모리, 적은 자원을 소모 / 컨텍스트 스위칭 빠르다 단점: 여러 개의 스레드가 임계 영역의 공유자원에 접근할 수 있기 ..

CS/운영체제 2023.11.22

컨텍스트 스위칭

운영체제 5: 컨텍스트 스위칭 (Context Switching) :: 머신러닝을 배웠던 데이터 엔지니어 (tistory.com) 운영체제 5: 컨텍스트 스위칭 (Context Switching) 컨텍스트 스위칭이란 여러개의 프로세스가 실행되고 있을 때 기존에 실행되던 프로세스를 중단하고 다른 프로세스를 실행하는 것. 즉, CPU에 실행할 프로세스를 교체하는 기술이다. PCB 컨텍스트 hyunie-y.tistory.com 여러개의 프로세스가 실행되고 있을 때, 기존에 실행되던 스위치를 중단하고 다른 프로세스를 실행하는 것. CPU에 실행할 프로세스를 교체하는 기술 PCB라고 하는 메모리 별도 공간에 상태값들을 저장, 해당 값들을 찾는 방법으로 구현됨 과도하게 많이 일어날 경우 오버헤드가 발생됨.

CS/운영체제 2023.11.20

페이지 폴트(Page Fault)

어떤 페이지에 접근하려고 했을 때 해당 페이지가 실제 물리 메모리에 부재할 때 뜨는 인터럽트. 어떤 프로그램이 자신의 주소공간(가상메모리 공간)에는 존재하지만 시스템의 RAM에는 현재 존재하지 않는 데이터, 코드에 접근할 경우 발생하는 현상 페이지폴트 뜨면 운영체제가 이를 해결한 후 동일한 명령을 수행 운영체제는 그 데이터를 메모리로 가져와서, 페이지 폴트가 전혀 발생하지 않은 것처럼 프로그램이 계속적으로 작동하게 해줌. 페이지폴트가 자주 일어날수록 운영체제 성능이 많이 저하되기 때문에 페이지폴트 일어나지 않게 하는게 중요 최소화 방법으로는 페이지 교체 정책이 있음 메모리 꽉차있을 때 기존 페이지 중 하나를 물리메모리 -> 저장매체로 내림 새로운 페이지를 방금 비워진 물리메모리 공간에 올림 페이지 교체 ..

CS/운영체제 2023.11.20

프로세스와 스레드의 차이

프로세스와 스레드의 차이 (velog.io) 프로세스와 스레드의 차이 프로세스와 스레드의 차이는 프로세스와 스레드, 그리고 프로그램이 작동하는 방식에 대해서 잘 이해하고 있는지 확인하기 위해 기술면접에서 단골 질문 사항으로 나온다. velog.io 걍 다름. 프로그램: 파일이 저장장치에 저장되어있지만 메모리에는 올라가 있지 않은 정적인 상태 프로세스: 프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 (실행되고 있는 컴퓨터 프로그램) 쓰레드는 프로세스 안에 포함된 개념임 하나의 프로세스는 하나 이상의 스레드를 가진다. 프로그램 하나가 단순히 한가지 작업만을 수행할 수 없기 때문에 등장한 개념이 스레드 프로세스 스레드 프로그램을 실행하여 컴퓨터 메모리에 올라가 있는 동적인 상태 스레드끼리 프로세..

CS/운영체제 2023.10.01

가상메모리와 가상메모리의 페이징

[운영체제] 가상 메모리(Virtual Memory System) (tistory.com) [운영체제] 가상 메모리(Virtual Memory System) 들어가기 전.. 메모리(memory)란? 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치임. 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치 ahnanne.tistory.com 컴퓨터에서 말하는 메모리라는것은 프로그램 + 프로그램 수행에 필요한 데이터, 코드를 저장하는 장치를 말함 메모리는 크게 주기억장치, 보조기억장치로 분류됨 주기억장치에는 DRAM, CPU 안에 있는 레지스터, 캐쉬 등의 내부 기억장치가 해당됨 SSD, HDD같은 외부 기억장치가 보조기억장치임 초기 컴퓨터는 사용 가능한 RAM의..

CS/운영체제 2023.10.01
728x90