CS42 운영체제 스터디 5주차 - CPU 스케쥴링 Basic Concepts CPU 스케쥴링은 멀티 프로그래밍(여러 개의 프로세스를 동시에 돌려서 궁극적으로 CPU의 활용도를 높이는 것)의 가장 기초적인 부분. 대부분의 프로세스의 작업은 CPU burst보다는 I/O burst 시간이 더 길다. 이는 프로세스가 I/O 처리를 위해 대기 상태에 들어가는 상황이 많다는 뜻이다. 만약 멀티 프로그래밍을 하지 않는다면 이 대기 시간 동안 CPU가 놀게 되므로 CPU 사용률이 급격히 떨어진다. 멀티 프로그래밍은 이 유휴 시간 동안 컨텍스트 스위칭 등으로 CPU가 프로세스를 계속해서 돌리게 하여 CPU의 가동률을 올린다. CPU 스케쥴링이란 유휴 상태가 되었을 때 어떤 프로세스로 컨텍스트 스위칭할 것인지 선택하는 과정이라고 볼 수 있다. Preemptive vs .. 2024. 1. 24. 운영체제 스터디 4주차 - 스레드 4.1 Overview 지금까지는 프로세스가 하나의 스레드를 가지는 실행 프로그램으로 가정하고 이야기하였으나, 실제 컴퓨터에서는 하나의 프로세스 안에서 여러 개의 스레드를 컨트롤할 수 있음. 스레드는 경량화된 프로세스(Lightweight Process, LWP)이면서 CPU의 가장 기본적인 단위가 됨. 그렇게 되면 실질적으로 CPU 점유는 프로세스 아이디(pid)가 아닌 스레드 아이디(thread ID)를 기준으로 진행됨. 스레드는 하나의 프로세스 안에서 코드, 데이터, 파일은 공유하지만 / 레지스터셋, 스택, 프로그램 카운터를 별도로 가지게 됨. 즉, 멀티 스레드 프로세스는 아래와 같이 표현 가능할 수 있음. (여기에서 주목할 점은 어떤 것을 공유하고 어떤 것을 따로 처리하는 가. 예를 들어 하나의 .. 2024. 1. 24. 운영체제 스터디 3주차 - 프로세스 간 통신 3.4 Interprocess Communication 두 개 이상의 프로세스가 동시에 실행되고 있을 때 독립적(independently)으로 실행될 때도 있지만, 서로 협력(cooperating)하여 실행되는 경우가 있음. 서로 협력한다는 것은 독립적인 프로세스 간 데이터를 주고받는다는 의미이며, 서로에게 영향을 주거나 받는 경우임. 이렇게 프로세스 간 통신하기 위해서는 IPC(Inter-Process Communication)매커니즘이 필요이라고 함. IPC 매커니즘에는 크게 공유 메모리(Shared Memory) 모델과 메시지 패싱(Message Passing) 모델이 있음. 공유 메모리는 프로세스 간 데이터를 주고 받을 수 있는 별도의 메모리 공간을 생성하여 이용하는 방법, 메시지 패싱은 운영체제.. 2023. 10. 8. 보안, 인증, 인가를 위한 최소한의 개념잡기 (feat. 해시, 디지털 서명, PKI) 웹 어플리케이션을 개발하다보면 사용자 인증 기능을 구현해야 하는 경우가 많은데, 이때 사용되는 기술들을 온전히 이해하고 사용하기 위해 정리한다. 이 포스트는 널널한 개발자님 강의를 참조하여 작성하였다. 정보 보안의 3요소기밀성(Confidentiality)인가받은 사용자만이 정보에 접근할 수 있어야 함무결성(Integrity)정보가 변조, 위조되지 않아야 하고, 정보를 신뢰할 수 있어야 함가용성(Availability)신뢰 가능한 사용자는 언제든지 해당 정보에 접근할 수 있어야 함 Checksum(검사합)체크섬은 데이터의 오류 여부, 조작 여부를 확인하는 방법으로 사용된다. 데이터를 일정 범위로 자른 후, 자른 부분들의 데이터를 합한 후 (일정 자릿수를 정하고) 범위를 넘는 자리 올림은 버려서 자릿수.. 2023. 10. 5. 이전 1 2 3 4 5 ··· 11 다음