Computer Science
-
프로세스와 스레드Computer Science/IT용어 2021. 5. 6. 17:13
프로그램 어떤 작업을 위해 운영체제 위에서 실행할 수 있는 파일 ex) 웹 브라우저, 워드 프로세서, 카카오톡 등 프로세스 운영체제 위에서 실행중인 프로그램 프로그램 명령어와 데이터들이 메모리에 올라오고 실행 중 또는 실행 대기중인 상태 프로세서(CPU) 프로세스가 동작될 수 있도록 하는 하드웨어 동작이란 프로그램의 자원들이 메모리에 올라오고, 실행 되어야 할 코드의 메모리 주소를 CPU의 레지스터로 올리는 것 멀티태스킹 사실 CPU는 한순간에 하나의 프로세스만 실행할 수 있음 운영체제는 짧은 시간에 수십번~수천번 실행할 프로세스를 교체한다 따라서 동시에 여러개의 작업이 실행되고 있다고 느끼는 것 프로세스의 상태 생성(Create) 준비(Ready) 실행(Running) 대기(Blocked) 종료(Ter..
-
[MySQL] 격리 수준(Isolation Level)Computer Science/데이터베이스 2021. 3. 24. 16:34
예전에 작성한 글에서 데이터베이스의 격리 수준에 대해서 간단하게 정리한 글을 작성한 적이 있습니다. JPA를 공부하면서 데이터베이스 격리 수준이라는 개념이 또 한번 등장해서 이참에 격리 수준이 도대체 무엇인지 공부하고 정리해보는 시간을 가져볼까합니다. 격리 수준이란? 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것입니다. 격리 수준은 다음과 같이 크게 4가지로 나뉩니다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 이 중에서 READ UNCOMMITTED는 일반적인 DB에서 잘 사용되지 않고, SERIALIZABLE은 동시성이 중요한 DB에서 거의 사용되지..
-
HTTP Status CodeComputer Science/네트워크 2021. 3. 21. 18:16
HTTP Status Code(상태 코드) 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능을 의미합니다. 대표적으로 상태 코드는 다음과 같이 이루어집니다. 1xx (Informational) : 요청이 수신되어 처리중 (거의 사용되지 않음) 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 2xx - 성공 200 OK 요청 성공 201 Created 요청이 성공해서 새로운 리소스가 생성됨 202 Accepted 요청이 접수 되었으나 처..
-
[OS] 교착 상태 (Deadlock)Computer Science/운영체제 2021. 1. 11. 12:06
Deadlock(교착 상태) 두 개 이상의 프로세스가 필요한 자원을 기다리면서 무한정 중지된 상태 Resource Allocation Graph(자원 할당 그래프) Node 프로세스 노드(P1, P2), 자원 노드(R1, R2) Edge Rj → Pi : 자원 Rj이 프로세스 Pi에 할당 됨 Pi → Rj : 프로세스 Pi가 자원 Rj을 요청 중(대기 중) 자원 R2가 프로세스 P1에 할당 되었다. 프로세스 P1이 자원 R2를 요청하고 있다. 자원 R1이 프로세스 P2에 할당 되었다. 프로세스 P2가 자원 R1을 요청하고 있다. 그래프를 생성한 후 Cycle이 생기면 Deadlock이 발생한 것! Deadlock Prevention(교착 상태 예방) 4개의 deadlock 발생 필요 조건 중 하나를 제거..
-
[OS] 프로세스 동기화와 상호배제 (Process Synchronization and Mutual Exclusion) - ③Computer Science/운영체제 2020. 12. 19. 20:42
Language Level Solutions Monitor(모니터) 공유데이터와 임계 영역의 집합 wait(), signal() 연산 존재 사용이 쉽고, Deadlock(교착상태) 등 에러 발생 가능성이 낮음 Monitor의 구조 Entry Queue(진입 큐) : 모니터 내의 procedure(function) 수 만큼 존재 Mutual Exclusion(상호 배제) : 모니터 내에는 항상 하나의 프로세스만 진입 가능 Information Hiding(정보 은폐) : 공유 데이터는 모니터 내의 프로세스만 접근 가능 Condition Queue(조건 큐) : 모니터 내의 특정 이벤트를 기다리는 프로세스가 대기 Signaler Queue(신호 제공자 큐) : 모니터에 항상 하나의 신호 제공자 큐가 존재, ..
-
[OS] 프로세스 동기화와 상호배제 (Process Synchronization and Mutual Exclusion) - ①Computer Science/운영체제 2020. 12. 19. 20:40
SW + HW Solutions Process Synchronization(동기화) 여러 개의 프로세스들이 존재하는 다중 프로그래밍 시스템에서 프로세스들은 서로 독립적으로 동작합니다. 공유 자원 혹은 데이터가 있을 때, 각각의 독립된 프로세스가 그 자원에 동시에 접근한다면? 다시 말해서 병행 수행중인 비동기적 프로세스들이 공유 자원에 동시 접근할 때 문제가 발생할 수 있습니다! 이를 막기 위해 동기화가 필요한데, 동기화는 다음과 같이 정리할 수 있습니다. 프로세스들이 서로 동작을 맞추는 것 프로세스들이 서로 정보를 공유하는 것 Mutual Exclusion(상호 배제) 상호배제란 둘 이상의 프로세스가 동시에 임계 영역에 진입하는 것을 막는 것을 의미합니다. 이러한 상호배제를 위해서 고려해야 할 3가지 기..