전체 글 354

[OS] 정리5

프로세스 동기화공유 메모리에 동시 접근하면 문제가 생긴다. 다음 코드를 보자.counter++과 counter--의 구현이 다음과 같을 것이다 counter++register1 = counterregister1 = register1 + 1counter = register1 counter--register2 = counterregister2 = register1 - 1counter = register2 이제 다음과 같은 순서로 실행이 된다고 생각해 보자.counter는 5로 시작한다.결과는 counter가 5여야 하지만, 각각 4, 6이 된다. Race Condition- 여러 프로세스가 공유 데이터를 동시에 엑세스하고 조작하는 상황. 공유 데이터의 최종적인 값이 마지막으로 완료되는 프로세스에 의해 결정되..

OS 2018.09.24

[OS] 정리4

프로세스의 실행은 CPU 실행 사이클과 I/O 대기로 구성된다. 일반적으로 짧은 CPU 버스트가 많고, 적은 수로 긴 CPU 버스트가 발생한다. CPU 스케줄러- 메인 메모리에 있는 Ready 상태의 프로세스들 중 하나에게 CPU를 할당시킨다.- 스케줄링이 발생하는 경우1. running에서 wait 상태로 변경될 때 (I/O 요청하는 경우)2. running에서 ready 상태로 변경될 때 (Interrupt 발생)3. wait 상태에서 ready 상태로 변경될 때 (I/O 요청 완료)4. 종료될 때- 1, 4일 경우에만 스케줄링하는 방식이 비선점 스케줄링이다.- 1~4 모든 경우에 스케줄링하는 방식이 선점형 스케줄링이다. Dispatcher- Short-Term 스케줄러에 의해 선택된 프로세스에게 C..

OS 2018.09.24

[OS] 정리3

MultiThread Model- 프로세스의 생성 및 컨텍스트 스위칭 부하가 크므로 Thread 사용 Thread- CPU 스케줄링의 기본 단위이자 프로세스 내의 제어의 흐름이라고 할 수 있다.- PC / Registers / Stack 으로 이루어져 있다.- 각 Thread는 레지스터 상태와 Stack을 가진다.- 프로세스 내부에서 여러 스레드가 생성될 수 있고, Code / 주소공간 / 운영체제 자원을 공유한다.- Thread 실행 환경을 Task라고 하며, 프로세스는 기본적으로 하나의 스레드를 가진다.- Thread의 생성 및 Switching은 프로세스에 비해 매우 부하가 적다멀티 프로세서 혹은 멀티코어 환경- 스레드는 다른 프로세서 혹은 멀티코어 환경에서 병렬로 실행될 수 있다. 싱글 프로세서 ..

OS 2018.09.24

[OS] 정리2

Program이란, 디스크에 존재하며 명령들의 리스트를 포함하고 있는 파일 Process- Process란 Program과 Program Counter를 의미한다. 프로그램이 메모리에 올라가면 프로세스가 된다.- Code(TexT) / Data / Stack / Heap / Program Counter로 구성되어 있다.- Data : 전역변수 / Static 변수가 저장됨- Stack : 임시 변수 - 지역변수 및 함수 매개변수, 리턴값 Process State- new : 프로세스가 생성됨- ready : CPU에 할당되기를 기다림- running : 명령들 실행중- waiting : Event 발생 기다림- terminated : 실행 종료됨 PCB(Process Control Block)- 프로세스..

OS 2018.09.23

[OS] 정리1

OS의 정의User 입장에서 OS :용이성과 성능을 위한 프로그램시스템 입장에서 OS : 자원 할당과 제어를 위한 프로그램 기본 구조- CPU 및 디바이스 컨트롤러(I/O 컨트롤러)들은 공유 메모리에 엑세스하며 버스를 통해 연결됨- I/O 디바이스와 CPU는 동시 실행이 가능- 각 디바이스 컨트롤러는 Local Buffer를 가짐- CPU는 메인 메모리와 Local Buffer 간의 데이터를 송/수신- I/O란, 디바이스로부터 컨트롤러의 Local Buffer까지의 데이터 전송- 디바이스 컨트롤러는 Interrupt를 발생시킴으로써 CPU에게 작업이 완료되었음을 알림 I/O 컨트롤러- CPU를 대신하여 I/O를 관리하며 실제로 I/O 명령을 수행- 내부에 Register와 Data Buffer가 존재.-..

OS 2018.09.21

[Spring] MVC 구조 Model(DTO(VO) DAO BO) Controller View

DAO(Data Access Object) : DB 데이터 조회/조작DAOInterface/DAOImplement 로 구분지어 명세와 구현 분리하며 개발.만약 Mybatis연동 때처럼 Interface만 필요한 경우 그냥 DAO라고 명시할 수 있음 DTO(Data Transfer Object) = VO(Value Object) : 계층 간의 데이터 교환을 위해 쓰이는 것.VO는 Ready-Only 속성을 띔. BO : 여러 DAO를 사용해 데이터 처리 이 모든게 Model 부분이고, 이제 Controller에서 Model과 View 조작.

Web/Spring 2018.01.30

[Springboot] Session with MySQL

참고 : https://pupli.net/2017/03/06/how-to-configure-spring-session-with-jdbc-for-mysql/ Springboot에서 Session 정보를 Mysql DB에 연동하는 방법에 대해 적어 보겠습니다. Dependency는 다음과 같습니다. 저는 Maven을 사용합니다. pom.xml org.springframework.session spring-session-jdbc mysql mysql-connector-java 5.1.6 org.springframework.boot spring-boot-starter-jdbc application.properties 파일에 다음과 같이 작성합니다. spring.session.store-type=jdbcserve..

Web/Spring 2018.01.29

[MySQL] 외부 접속 권한 설정

mysql 설치 시 기본으로 등록되어 있는 root 유저는 외부 접속 권한이 없다. 그래서 새로 권한을 부여해야 한다. 다음과 같이 입력한다. grant all privileges on *.* to 'user id'@'%' identified by 'password'; *.* - [DB명.테이블명]% - 모든 외부 IP에 대해 외부 접속을 허용한다는 의미이다. 이걸 하고 flush privileges; 입력하여 변경된 privileges 사항들을 적용시킨다. 이제 mysql 설정파일인 /etc/mysql/mysql.conf.d/mysqld.cnf 를 텍스트 편집기로 열면 bind-address 부분이 있는데, 이를 위와 같이 주석처리 해 준다. 그리고 mysql server를 restart한다. 여기까지..

DB/MySQL 2018.01.22
반응형