일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- github
- computerscience
- CS
- html/css/js
- 코테
- CSS
- js
- 호이스팅
- 국비지원취업
- 그리디
- 부트캠프
- KAKAO
- 컴퓨터공학
- 국비지원
- 프론트엔드개발자
- 패스트캠퍼스
- nodejs
- 자바스크립트
- 백준
- 너비우선탐색
- git
- BFS
- 알고리즘
- 코딩테스트
- 컴퓨터과학
- DFS
- LinkSnap
- 야놀자
- cpu
- Javascript
- Today
- Total
목록computerscience (10)
My Boundary As Much As I Experienced

세마포어 : 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다. 이를 위해 나온 것이 바로 '세마포어' 임계 구역 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 세마포어 P, V 연산 P : 임계 구역 들어가기 전에 수행 ( 프로세스 진입 여부를 자원의 개수(S)를 통해 결정) V : 임계 구역에서 나올 때 수행 ( 자원 반납 알림, 대기 중인 프로세스를 깨우는 신호 ) // P(S); procedure P(S) --> 최초 S값은 1임 while S=0 do wait -..

여러 프로세스가 하나의 공유 자원에 접근하려 할 때 발생하는 문제이다. 데이터의 최종 상태는 마지막에 접근한 프로세스에 따라 달라진다고 한다. 이런 문제 때문에 상호 배제(Mutual Exclusion)이 필요하다. 컴퓨터 시스템에서 데이터 연산의 순서는 이렇다. 연산할 데이터를 저장 공간에서 가져온다. -> 연산한다. -> 연산한 결과를 저장 공간에 반영한다. 그런데 여러 실행 주체가 1개의 공통 데이터를 수정할 때 예상치 못한 경쟁 상태가 발생하는 것이다. count++와 count--가 서로 참조해서 예상치 못한 값을 나오게 하는 예시. 경쟁 상태가 일어나는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조..

시스템 콜(System Call)이란? 사용자 프로그램이 디스크 파일을 접근하거나 화면에 결과를 출력하는 등의 작업이 필요한 경우, 즉 사용자 프로그램이 특권 명령의 수행을 필요로 하는 경우, 운영체제에게 특권 명령의 대행을 요청하는 것이 시스템 콜이다. (커널 모드의 명령을 사용자 모드에서 명령으로 할 수 있게 해주는 것이다.) SUDO 아닌가? 아님 시스템 콜의 유형 시스템 콜은 다섯 가지의 중요한 범주로 나눌 수 있다. 프로세스 제어, 파일 조작, 장치 조작, 정보 유지보수, 통신과 보호. 여기서는 각 범주들에 어떠한 기능들이 있는지만 간략하게 살펴본다. (자세한 내용을 알고 싶으면 홍릉과학출판사의 Operating System Concepts 8th Edition, 64page 부터 참고하길 바란..

인터럽트(Interrupt)란? 인터럽트란 CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 발생한다. 지금 수행 중인 일보다 더 중요한 일(ex. 입출력, 우선 순위 연산 등)이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속해야한다. 인터럽트의 종류 외부 인터럽트 전원 이상 인터럽트: 정전이나 전원이 이상이 있는 경우 기계 고장 인터럽트: CPU등의 기능적인 동작 오류가 발생한 경우 외부 신호 인터럽트(External interrupt) 타이머가 끝난 경우 키보드로 인터럽트 키를 누른 경우 : 대표적으로 Control + Alt + Delete 외부장치에서 인터럽트 요청이 있는 경우 입출력 인터럽트(I/O Interrupt): 입출력의 종료 등의 이유로 CPU의 수행을 요..

운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템입니다. 여러 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. (종류로는 Windows, Linux, UNIX, MS-DOS 등이 있으며, 시스템의 역할 구분에 따라 각각 용이점이 있습니다.) 운영체제의 성능 척도 처리능력 : 운영체제는 시스템의 생산성을 나타내는 단위로, 일정 시간 동안 처리하는 일의 양을 의미합니다. 응답시간 : 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 신뢰도 : 주어진 문제를 얼마나 정확하는가에 대한 정도 사용가능도 : 시스템을 얼마나 빠르게 사용할 수 있는가에 대한 정도 운영체제의 기능 ..
ARM Processor란? 임베디드 기기(music players, smartphones, wearables, tablets)에 사용되는 소형 컴퓨팅 시스템. - 메모리, 인터페이스, 라디오, 시스템 온 칩, 시스템 온 모듈 등이 포함된다. - 주로 32bit 프로세서 - RISC 아키텍처가 있는 프로세서이다. 이러한 특성은 스마트폰, 랩탑, 태블릿, 기타 임베디드 시스템과 같은 가볍고 휴대가능한 베터리 전원 장치에 바람직하지만 서버와 데스크탑에도 어느정도 유용하다. - 스마트폰에서 CPU역할을 하는 AP (Application Processor)가 널리 보급되며 인지도가 올라갔다. RISC : Reduced Instruction Set Computing (감소된 명령 집합 컴퓨팅)란? 1980년대, ..
컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 캐시 전용 메모리. 프로그램에서 직접적으로 읽거나 쓸 수 없고 하드웨어의 메모리 관리 시스템이 내부적으로 제어한다. RAM과 CPU를 잇는 중간자적인 메모리 역할을 한다. 캐시메모리의 구성 CPU 하나 당 캐시메모리가 2~3개 정도 사용된다. 듀얼코어의 경우 각 코어 당 하나의 L1 캐시 메모리를 가지고 있으며, 두 코어가 공유하는 L2 캐시메모리를 사용한다. L1 : CPU 내부에 존재 L2 : CPU와 RAM 사이에 존재. 용량이 크고, 크기를 위해 L1 캐시처럼 나누지 않는다. L3 : 보통 메인보드에 존재한다고 함. 여러 코어가 공유하는 캐시. 작동 원리: 데이터 지역성 시간 지역성은 최근 접근한 데이터에 다시 접근하는 경향을 말한다. 가령 f..
컴퓨터의 구성 컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software) 두 가지로 나눌 수 있다. 하드웨어는 물리적으로 컴퓨터 시스템을 구성하고 있는 기계 장치이고 소프트웨어는 논리적으로 컴퓨터 시스템을 구성하고 하드웨어들을 관리하고 동작시킨다. 소프트웨어는 명령어들의 집합으로 볼 수 있으며 일반적으로 프로그램이라고 칭하기도 한다. 컴퓨터 하드웨어의 구성 중앙 처리 장치 연산 장치 제어 장치 기억 장치 입/출력 장치 중앙 처리 장치는 연산 장치와 제어 장치로 이루어져 있다. 연산 장치, 제어 장치, 기억 장치, 입/출력 장치 이렇게 5개로 컴퓨터 5대 구성 요소라고 부르기도 한다. 시스템 버스는 각 요소들과 연결되어 있고 데이터와 명령 제어 신호를 각 장치로 실어 나른다. 중앙 처리..

가상 메모리 또는 가상 기억 장치는 메모리 관리 기법의 하나로, 컴퓨터 시스템에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것을 말한다. - wikipedia 쉽게 말해서, 주 메모리(RAM같은 휘발성 메모리)가 아닌 공간을, 주 메모리처럼 쓰면서 주 메모리가 매우 넓은 것처럼 사용하는 기법이다. 주 메모리가 아닌 공간이란 보조 기억 장치인 SSD, HDD같은 공간을 말한다. 보조 기억장치에 가상 주소를 주고 가상 메모리로써 사용하는 것이다. 보조 기억 장치에 가상 주소를 부여 => 가상 메모리 주 기억 장치의 실제하는 물리적 주소 => 실제 메모리 참고: 가상 주소는 MMU에 의해 실제 주소로 변환됨 TLB(Translation Lookas..

CPU(Central Processing Unit) 컴퓨터의 두뇌 역할을 하는 부품. 구성 요소: ALU(Arithmatic Logic Unit, 논리 연산 장치): 사칙연산 및 논리 구조(and, or, xor, not, ...)를 통제하는 역할을 한다. CU(Control Unit, 제어 장치): 명령어를 불러와 해석한다. 처리할 요소들을 ALU에 전달하고 조절하는 역할을 한다. Register(레지스터): CPU 내에 있는 소규모의 고속 저장 장치. 레지스터는 메모리 계층의 최상위에 위치하며 가장 빠른 속도로 접근 가능하다. Cache Memory(캐시 메모리): 컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 캐시 전용 메모리. 레지스터에 이어 두번째로 빠른 속도로 접근 가능하다. Regis..