Upstage AI Lab 4기/컴퓨터 공학

모든 프로세스는 실행을 위해 자원이 필요하다. 그런데 서로의 자원을 무한히 기다리기만 한다면 어떻게 될까?교착 상태교착 상태는 일어나지 않을 사건(필요한 자원의 할당)을 기다리며 일부 자원을 보유한 채로 무한히 대기하는 현상이다. 교착 상태가 발생할 수 있는 조건상호 배제: 동시에 자원 사용이 불가능한 경우점유와 대기: 자원을 할당받은 채 다른 자원의 할당을 기다리는 경우비선점: 강제로 자원을 빼앗을 수 없는 경우원형 대기: 자원을 원형으로 대기할 경우 교착 상태 해결 방법교착 상태 예방교착 상태 회피교착 상태 검출 후 회복교착 상태 예방교착 상태 발생 조건 네 가지 중 하나를 없애는 것교착 상태가 발생 배경 원천 차단교착 상태가 발생하지 않음을 보장할 수 있지만, 여러 부작용이 따르는 방식이다. 상호 ..
👇 동기화 해결 방법으로 뮤텍스 락과 세마포에 대한 내용은 다음 링크에서 확인할 수 있다. 👇 동기화 해결 방법 (1) - 뮤텍스 락과 세마포 [운영 체제] 동기화 해결 방법 (1) - 뮤텍스 락과 세마포동기화 해결의 세 가지 원칙상호 배체: 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 대기해야 함진행: 어떤 프로세스도 임계 구역에 진입하지 않았다면 진입이 가능해야 함유한 대yijoon009.tistory.com  기존 동기화 도구의 문제점세마포를 누락한 경우wait과 signal 순서를 헷갈린 경우wait과 signal을 중복해서 사용한 경우 모니터사용이 간편한 동기화 도구공유 자원에 접근하기 위한 인터페이스인터페이스를 통해서만 접근(상호 배제) 실행 순서 제어를 위한 동기화를 위해 조건..
동기화 해결의 세 가지 원칙상호 배체: 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 대기해야 함진행: 어떤 프로세스도 임계 구역에 진입하지 않았다면 진입이 가능해야 함유한 대기: 한 프로세스가 임계 구역 진입을 위해 대기하고 있다면 언젠간 진입이 가능해야 함 뮤텍스 락(Mutex Lock) - 상호 배제를 위한 동기화 도구뮤텍스 락은 한 마디로 자물쇠(lock)다.간단하게 설명해 보자면,자물쇠 역할: 프로세스들이 공유하는 전역변수 lock자물쇠 잠그기: acquire 함수 (임계 구역 진입 전 실행되는 함수)자물쇠 열기: release 함수 acquire() { while (lock == true) /* 만약 임계 구역이 잠겨있다면 */ ; ..
운영 체제는 자원을 관리하고 할당하는 특별한 프로그램이다. 운영 체제모든 프로그램은 메모리(RAM)에 적재되어 있어야 실행된다.  운영체제는 너무 특별하기 때문에 메모리 내 운영체제가 적재되는 영역이 따로 있다. 여기를 커널 영역이라고 부른다.커널 영역이 아닌곳은 사용자 영역(user space)라고 불린다. 운영 체제는 사용자 영역에 있는 많은 프로그램들에게 다양한 일을 해준다.메모리 할당, 반환CPU 할당, 반환디스크 할당, 반환 운영 체제의 핵심부, 커널(kernel)운영체제를 이루고 있는 소스코드는 굉장히 방대한데 그중에서 운영체제가 제공해 주는 핵심 서비스를 제공해 주는 운영체제의 한 부분을 커널이라고 부른다. 스마트폰도 종류가 다양한데 결국 핵심적인 기능은 전화, 문자, 와이파이 등등 인것처럼..
실행 중인 프로그램이 적재되는 메모리 주소는 시시 때때 바뀔 수 있다. 그리고 같은 프로그램을 두 번 실행하면 다른 메모리에 적재될 수 있다. 그런데, cpu와 실행중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 전부 알지 못한다. 그렇다면 cpu는 어떻게 시시 때때로 적재된 프로그램의 주소를 찾아가는 걸까? 나아가서 현재 실행되고 있는 프로그램이 메모리상에 적재되어있는 다른 프로그램을 어떻게 상호작용을 할 수 있을까? 논리 주소와 물리 주소사실, 주소 체계에는 두 종류가 있다: 논리 주소와 물리 주소 물리 주소: 실제 메모리의 하드웨서 상의 주소 (고유한 주소)논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소. 실제 주소가 아니라 논리적으로 그렇다더라 하는 주소다(0번지부터 시작..
스레드에 대한 혼동스레드가 하드웨어적으로도 사용되고 소프트웨어적으로도 사용되는 단어다 보니 약간의 혼동이 있을 수 있다.하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어 단위소프트웨어 스레드: 하나의 프로그램을 독집적으로 실행하는 단위 CPU의 성능을 높일 수 있는 설계CPU의 성능을 높일 수 있는 설계는 다음과 같다. - 높은 클럭 수 - 멀티 코어 - 멀티 프로세서이 외에 명령어 병렬 처리 기법, 비순차적 명령어 처리가 있다. 명령어 벙렬 처리 기법명령어 파이프라이닝 기법이라고도 불린다.하나의 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 명령어 인출, 해석, 실행, 저장으로 말할 수 있다.👉 위 단계들은 서로 겹치지만 않는다면 한꺼번에 실행할 수 있다. 명령어 파이프라이닝에 실패하..
CPU가 명령어를 순차적으로 처리하는 양상명령어 사이클: cpu가 명령어를 처리하는 정형화된 주기, 흐름인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> ... 그러나, 간접 주소 지정 방식처럼 실제 연산에 사용될 데이터를 얻기 위해 한 번 더 메모리에 접근해야 할 경우가 있다. 오퍼랜드 필드에 유효 주소의 주소가 들어가 있다면 메모리에 두 번 접근해야 한다. 이때 간접 사이클이 추가된다.인터럽트cpu의 정상적인 실행 흐름을 방해하는 신호. exception, fault 동기 인터럽트 (예외, Exception)주로 CPU에 의해 발생, 명령어 처리 도중 비정상적인 상황에 마주했을 경우 발생한다. 디버깅할 때 break point도 여기에 해당한다..
CPU의 핵심 구성 요소 세 가지ALU (산술논리연산장치): 연산을 수행하는 장치(계산을 담당하는 회로)제어 장치: 명령어를 해석하고 제어 신호(컴퓨터 부품한테 어떤 동작을 할지 알려주는 일종의 전기 신호)를 내보내는 장치,레지스터(들): 명령어 처리 전후로 값을 임시 저장하는 장치로우 레벨(보안)을 개발하는 직군이면 레지스터와 친해져야 한다.ALU레지스터로부터 피연산자를 받아들이고, 제어 장치로부터 제어 신호(연산할 작업)를 받아들인다. 그리고 연산의 결과를 레지스터, 연산에 대한 부가 정보를 플래그 레지스터에 저장한다. 플래그 레지스터연산의 결과에 대한 부가 정보부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그(인터럽트가 가능한지 여부), 슈퍼바이저 플래그 총 여섯 개가 ..
평양냉면7
'Upstage AI Lab 4기/컴퓨터 공학' 카테고리의 글 목록