CS(76)
-
[CS] DMA와 서로 다른 입출력 명령어, 저장장치 계층 구조 등과 같은 전반적인 운영체제에 대한 나름의 이해
DMA는 Direct Memory Access로 입출력과 메모리를 직접적으로 연결해주는 역할을 한다. 바이트 단위가 아닌 블록 단위로 인터럽트를 시킨다. 서로 다른 입출력 명령어란 입출력에 대한 명령어를 따로 설정할 수도 있고 아니면 메모리 명령어로도 쓸 수 있다는 것이다. 후자의 경우 입출력 장치도 하나의 메모리 영역에 있다고 보는 것이다. 저장장치 계층 구조란 저장장치의 속도 차이 때문에 만들어진 것이다. 속도가 빠른 것은 크기가 작고 비용이 크다. 계층구조에서 상위를 차지하고 속도가 느린 것은 반대이다. 순서대로 레지스터, 캐시 메모리, 메인 메모리가 프라이머리 구조를 이루고 하드디스크가 세컨더리 구조를 이룬다. 프라이머리 계층은 CPU가 직접 접근이 가능한 계층이고 세컨더리는 그게 아니다. 캐싱은..
2023.10.18 -
[CS] 동기식 입출력과 비동기식 입출력에 대한 나름의 이해
동기식 입출력은 유저 프로세스가 입출력 결과를 받고 나서 그다음 할일을 수행하는 방식이다. 비동기식 입출력은 유저 프로세스가 입출력 요청만 주고 다음 할일을 수행하다가 입출력 결과를 받는 식이다. 동기식 입출력의 구현 방식은 두 가지인데 하나는 CPU가 입출력 작업이 끝날때 까지 기다리는 것이다. 하지만 이렇게 되면 CPU가 낭비가 된다. 또한 매시점 하나의 입출력만 가능하므로 I/O 관점에서도 손해이다. (이건 솔직히 이해가 잘안된다) 두 번째는 CPU가 입출력 작업이 진행중인 프로세스는 넘기는 것이다. 이렇게 되면 CPU가 낭비되지 않고 여러개의 입출력도 가능해진다. 왜냐하면 다른 프로세스도 입출력 요청을 하면 역시 CPU 권한이 뺏기기 떄문이다. 비동기식 입출력은 입출력이 끝나길 기다리지 않고 즉시..
2023.10.17 -
[CS] 좀비 프로세스와 고아 프로세스에 대한 나름의 이해
부모 프로세스는 자식 프로세스의 자원을 회수한다. 그런데 만약 자식 프로세스가 끝났을 때 자원을 회수하지 못하면 좀비 프로세스가 된다. 자식은 종료되었음을 알리기 위해 SIGCHILD를 시그널을 부모에 보낸다. 그러면 부모는 wait 시스템콜을 호출하고 회수한다. 이와는 다르게 부모 프로세스가 먼저 끝나면 자식 프로세스는 고아 프로세스가 된다. 이때 고아 프로세스의 부모의 PID를 init 프로세스의 PID로 바꾸게 된다. 그러면 init 프로세스가 회수를 한다. init 프로세스는 부팅 시 가장 먼저 실행되는 프로세스로 PID는 1이다. Reference https://www.yes24.com/Product/Goods/121769526
2023.10.17 -
[CS] IPC에 대한 나름의 이해
Inter process communication으로 프로세스 간 통신을 의미한다 자원을 주고받기 위함인데 프로세스는 독립적인 메모리를 갖기 때문에 소통이 필요해진다 다음과 같이 다섯 가지 방법이 있다 1. 소켓 2. 메세지 큐 3. 공유 메모리 4. 세마포어 5. 파이프 Referencehttps://www.yes24.com/Product/Goods/121769526
2023.10.16 -
[CS] 쓰레드 안전에 대한 나름의 이해
멀티쓰레드 환경에서 여러 개의 쓰레드가 하나의 변수, 함수, 객체에 동시에 접근해도 문제가 없음을 의미한다 예를 들어 a++에는 세개의 인스트럭션이 있어 락킹을 하지 않으면 문제가 생긴다 원자 연산 즉 하나의 인스트럭션만 있는 연산을 하게 하는 것도 안전을 이루는 하나의 해결책이다 Reference https://www.yes24.com/Product/Goods/121769526
2023.10.15 -
[CS] 교착상태에 대한 나름의 이해
교착상태(Deadlock)는 4가지 조건이 갖추어지면 발생한다. 1. 상호배제: 하나의 프로세스만 공유자원에 접근할 수 있다. 락킹 메커니즘과 같다. 그러니까 나 말고 다른 애는 못들어오는 거다(상호배제) 2. 점유와 대기: 하나를 점유하고 있는 프로세스가 다른 하나의 프로세스를 대기하고 있는 것이다. 3. 비선점: 프로세스가 강제로 다른 프로세스로부터 공유 자원을 뺏을 수 없다. 4. 환형대기: 프로세스가 자신의 자원을 점유하면서 앞 또는 뒤로 자원을 대기한다. 식사하는 철학자 문제 위의 네 가지가 충족되면 교착상태가 발생하고 하나라도 충족이 되지 않으면 발생하지 않는다. 각각에 대한 해결책은 다음과 같다. 1. 상호배제 부정: 세마포어 등과 같이 여러 개의 프로세스가 접근할 수 있도록 한다. 2. 점..
2023.10.14